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

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. SharePoint 2013 批量导入、删除帐号

    删除一个group里所有的帐号: cls ########################### # "Enter the site URL here" $SITEURL = &q ...

  2. 平衡树Splay

    维护区间添加,删除,前驱,后继,排名,逆排名 普通平衡树 #include <cstdio> #define ls t[now].ch[0] #define rs t[now].ch[1] ...

  3. cf860E Arkady and A Nobody-men (树剖)

    容易得出,如果我们按照深度一层一层地做,做完一层后,这层某个点的答案就是它的祖先们的子树大小(统计大小时不包括树根) 由于我太菜了不会别的方法,虽然N是5e5的,还是只好用一个树剖(树状数组降常数)水 ...

  4. oracle调用DLL

    具体步骤:1.创建Oracle Library  Create Library  AAA as  'C:\UserData\xuxia\TestProc\Debug\TestProc.dll' 可以通 ...

  5. apk的安装删除

    1,签名: java -jar signapk.jar platform.x509.pem platform.pk8 DownloadProvider.apk DownloadProvider-sig ...

  6. poj 3683(2-SAT+SCC)

    传送门:Problem 3683 https://www.cnblogs.com/violet-acmer/p/9769406.html 参考资料: [1]:挑战程序设计竞赛 题意: 有n场婚礼,每场 ...

  7. 数据类型、位运算、sizeof()函数

    数据精度,依次升高.(负数必须使用有符号类型) 不同精度的数据间运算,所得结果为高精度类型. 数据类型详细信息如下图: 整型数据的数制:十进制(32).八进制(032,以0开头).十六进制(0x32, ...

  8. IntelliJ IDEA和Eclipse最常用的快捷键对应表:

    描述 Eclipse Intellij 代码补全 Ctrl+space Ctrl+space 打开类或者接口 (两个IDE都支持使用“驼峰字符”前缀的方式来过滤查找列表,进而轻松完成搜索:比如:可 以 ...

  9. C#复习正则表达式

    由于前段时间为了写工具学的太J8粗糙 加上最近一段时间太浮躁 所以静下心来复习 一遍以前学的很弱的一些地方 1 委托 public delegate double weituo(double a, d ...

  10. 通用Excel文件导出工具类

    1:Excel格式 2:ExcelUtil.java import java.io.ByteArrayOutputStream; import java.io.IOException; import ...