对于我的程序,我需要以下代码行的功能。如果条件的计算结果为true,我需要表达式if为false,由于System.IndexOutOfRangeException
而不会被计算。有什么办法可以做到这一点?
Bobject VARvalue = (args.Length < 2) ? Zero : new Bobject(args[2]);
编辑:我并没有具体说明此行的目标。目的是检查代码中是否存在args[2]
,如果不存在,请将变量设置为其他值,因为args[2]
会引发异常。
答案 0 :(得分:1)
要使您的条件为假,args.Length
必须等于2
或更高。
如果它是2
,则访问args[2]
会抛出IndexOutOfRangeException
,因为唯一可用的索引是0
和1
。
如果要在args
数组中添加SECOND项,则必须传递索引1
,因为数组索引基于零。
Bobject VARvalue = (args.Length < 2) ? Zero : new Bobject(args[1]);
或者至少将您的条件修改为args.Length <= 2
。我不太确定哪种解决方案可以解决您的特定目标,但是希望这能使您朝正确的方向前进。
答案 1 :(得分:0)
数组基于0,因此第二项位于索引1,而不是2:
Bobject VARvalue = (args.Length < 2) ? Zero : new Bobject(args[1]);