//保留了原文   ()为大概的意思

VB で使用していた IIf 関数の代わりに VB2008 からは If 演算子 を使用可能となった。 また、 C# では、条件演算子 (?:) で同等の記述が可能である。 ここでは、それぞれの使用方法について示す。

(自VB2008开始if运算符代替VB中的IIf函数,相当于C#的(?:)下面就是各自的使用方法举例)

[ C# ] 条件演算子 (?:)

(条件运算符)

[C#]

    int score   = 80;
int average = 60; // 条件が真ならgood、偽ならbadが返される(条件真返回good,条件假返回bad)
object ret = score > average ? "good" : "bad";

以下のように真と偽の場合で異なる型を返すことはできないので注意が必要である。 ただし、全く異なる型を返すことはお勧めできないが、回避することも可能なのでその方法も示す。

(像下面的例子  用对象类型的时候 不能成功的返回值,但是可以有解决的办法)

[C#]

    // 異なる型を返すことはできない(コンパイルエラー)(转换失败)
//object ret = score > average ? new List<string>[1] : new Dictionary<string, string>[2]; // どうしても、異なる型を返したい場合の回避方法(解决办法 定义两个object类型)
object a = new List<string>[1];
object b = new Dictionary<string, string>[2]; object ret = score > average ? a : b;

[ VB ] IIf 関数 (IIF函数)

IIf 関数の使い方はここでは省略するが、参考サイトにあるように以下のコードでは 例外(System.DivideByZeroException)が発生する。(iif的使用方法下面)

[VB]

    Dim number As Integer= 12
Dim divisor As Integer = 0 ' 例外発生
Dim ret As Integer = IIf(divisor <> 0, number \ divisor, 0) iif(表达式,如果成立返回结果1,不成立返回结果2) iif(条件表达式,1,2)

IIf 関数では、条件(divisor <> 0)が真の場合にのみ、真の演算(number \ divisor)を行うのではなく 常に真偽のいずれの演算も行い、条件によってその結果を返しているために上記のコードで例外が発生する。 前述の If 演算子や C# の条件演算子 (?:)では、条件に結果によって真偽いずれかの演算のみ行われるので このような問題は起こらない。


(注意除数为0的错误情况)


[ VB ] If 运算符 [ C# ] 条件运算符 (?:)的更多相关文章

  1. “全栈2019”Java第十九章:关系运算符、条件运算符和三元运算符

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. [原创]java WEB学习笔记39:EL中的运算符号(算术运算符,关系运算符,逻辑运算符,empty运算符,条件运算符,括号运算符)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符

    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...

  4. C语言运算符_03

    ·运算符的优先级:C语言中,运算符的优先级共分为15级.1级最高,15级最低.在表达式中,优先级较高的先于优先级较低的进行运算.而在同一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合 ...

  5. [Java入门笔记] Java语言基础(三):运算符

    简介 运算符是一种特殊的符号,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号,运算符和操作数的有效组合称为表达式. Java中运算符主要分为以下几类: 赋值运算符 算术运算符 关 ...

  6. js 运算符

    一.算术运算符: 1.运算符: “+”:功能:对数字进行代数求和:对字符串进行连接操作:将一个数值转换为字符串(数值+空字符串). “-”:功能:对操作数进行取反操作:对数字进行减法操作:将字符串转换 ...

  7. C 运算符优先级

    优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -& ...

  8. PHP 三元运算符省略写法

    三元运算符 “?:” 又名条件运算符 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值 ...

  9. C#基础知识系列四(运算符汇总)

    前言  本节主要来讲C#中的各种运算符.主要包括is运算符.as运算符.checked和unchecked运算符.sizeof运算符.空接合运算符(??).&和&&.移位运算符 ...

随机推荐

  1. Java XML JSON 数据解析

    下面我们通过一段代码了解一下解析JSON格式数据的基本过程: 提示:使用JSON需要导入 JSON 相关的多个Jar文件 import net.sf.json.JSONObject; public c ...

  2. emWin 文字图形同时刷新导致图形显示异常

    @2018-7-10 实现目标 一 BUTTON 控制文字图形的刷新切换,具体为 BUTTON 初次按下,文字显示为 “开始” .填充圆显示为绿色,再次按下,文字显示为 “停止” .填充圆显示为红色 ...

  3. shell(1)-磁盘shell

    查看硬盘的大小脚本[root@localhost ~]# vi repboot.sh#!/bin/bash# To show usage of /boot directory and mode of ...

  4. 【Codeforces 98E】 Help Shrek and Donkey

    http://codeforces.com/problemset/problem/98/E (题目链接) 题意 A君有n张牌,B君有m张牌,桌上还有一张反扣着的牌,每张牌都不一样. 每个回合可以做两件 ...

  5. 前端学习 -- Html&Css -- 条件Hack 和属性Hack

    条件Hack 语法: <!--[if <keywords>? IE <version>?]> HTML代码块 <![endif]--> <keyw ...

  6. intent 几种用法

    Intent 应该算是Android中特有的东西.你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料.都指定好后,只要调用start ...

  7. 将文件转换为base64字符串,然后还原

    package com.um.banks.xinlian.utils; import java.io.File; import java.io.FileInputStream; import java ...

  8. JAVA类中获取项目路径

    在java web项目中获取项目的src/main/resource下的文件路径 当前类名.class.getClassLoader().getResource("/").getP ...

  9. (转)Maven pom.xml 配置详解

    背景:maven一直感觉既熟悉又陌生,归根结底还是自己不太熟. 1 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者 ...

  10. 求n(n>=2)以内的质数/判断一个数是否质数——方法+细节优化

    #include <stdio.h> #include <stdlib.h> //判断i是否质数,需要判断i能否被(long)sqrt(i)以内的数整除 //若i能被其中一个质 ...