可能的重复:
c# 中的 iif 等效项 https://stackoverflow.com/questions/822810/iif-equivalent-in-c
我有几行代码使用IIf
在 VB 中,我正在尝试将此代码转换为 C#。
这是我需要帮助的示例:
intCurrency = IIf(or.Fields("Currency").Value = "USD", 100, 0)
如何将上面的代码行更改为 C# 代码? C#中有短路求值运算符吗?
It is close正如一些人建议的那样,使用 C# 三元/条件运算符,但它并不是完全的替代品。 C# 三元运算符执行短路求值,这意味着仅发生求值子句的副作用。在 VB.Net 中Iif
函数不实现短路,并且会评估两种副作用。
另外还有Iif
VB.Net 中的函数是弱类型的。它接受并返回键入为的值Object
。 C# 三元运算符是强类型的。
您可以编写的最接近的等效内容如下。将值放入参数中会强制评估其副作用。
public static object Iif(bool cond, object left, object right) {
return cond ? left : right;
}
或者稍微好用一些
public static T Iif<T>(bool cond, T left, T right) {
return cond ? left : right;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)