IIf函数的奇怪问题,呵呵,大伙看看
vb里
Sub Main(ByVal args As String())
Console.WriteLine(IIf(args.Length > 0, args(0), ""))
End Sub
出错,原因是iif的函数里的表达式都会计算一次先,由于args是空,arsg(0)下标越界了,用if语句和一个变量分别来写可以。
c#里用三目运算符可以,不会出错
static void Main(string[] args)
{
Console.WriteLine(args.Length > 0 ? args[0] : "");
}
这么会这样捏,奇怪的问题,msdn里可是说IIf 函数提供相当于 Visual C++ 中的三元 Conditional Operator: ? : 的功能。