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

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. BZOJ5298 [CQOI2018] 交错序列 | 矩阵乘法和一个trick

    题面 求所有长度为\(n\)的.没有相邻的1的01序列中,若0有\(x\)个.1有\(y\)个,\(x^ay^b\)之和(对\(m\)取模). \(n \le 10^7, m \le 10^8, 0 ...

  2. [luogu4268][bzoj5195][USACO18FEB]Directory Traversal

    题目大意 给你\(n\)个文件的关系,求出某一个点,这个点到叶节点的长度的总距离最短.(相对长度的定义在题目上有说明) 感想 吐槽一下出题人,为什么出的题目怎么难看懂,我看了整整半个小时,才看懂. 题 ...

  3. 端午漫谈(附:Ubuntu18.04下轻量截图软件)

    先说声端午快乐- 有空就陪陪家人吧.今天陪外公吃了顿饭,陪老人家聊了会天,颇有点感触.发现技术真的是改变生活,小孩抖音自学跳舞,大人微信刷又刷,很多天海一方的老朋友都可以联系到了... 其实最有感触的 ...

  4. 转载:Unity3D游戏对象消失enabled、Destroy与active的区别

    转自:http://www.manew.com/3276.html Unity3D游戏对象消失三种方法的区别: gameObject.active:是否在场景中停用该物体,在你gameObject.a ...

  5. BSGS&EXBSGS 大手拉小手,大步小步走

    大步小步走算法处理这样的问题: A^x = B (mod C) 求满足条件的最小的x(可能无解) 其中,A/B/C都可以是很大的数(long long以内) 先分类考虑一下: 当(A,C)==1 即A ...

  6. easyui-treegrid的案例

    1.前台html <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  7. 笔记: c开发gui程序 (WM_CREATE, WS_CLIPCHILDREN , SetWindowPos)

    过去两年,用c写的gui程序我一般使用的套路是: 在 winMain()中, 先创建一个主窗口, 紧接着就是在下面创建子窗口(子控件). 可能是因为写这方面的程序较少,所以也没遇到什么大问题,之前就是 ...

  8. ASP:连接Access数据库的方法及使用感受

    连接Access的方式有: 方式1: Set conn = Server.Createobject("ADODB.Connection")conn.open "drive ...

  9. 爬虫acm比赛成绩(多页成绩整合在一起、获取复制不了的数据)(hihocoder、计蒜客)

    https://github.com/congmingyige/web-crawler_rank-of-competition-in-JiSuanKe-and-hihocoder 1. 计蒜客(获取复 ...

  10. 1、JDBC-Connection

    新建Maven工程 pom.xml <dependencies> <dependency> <groupId>mysql</groupId> <a ...