我发现以下代码令人费解:

public double ReturnBehavior(List<double> ptList)
{
    return ptList.Count==0? 0:ptList[0];
}


我认为应该相当于

public double ReturnBehavior(List<double> ptList)
{
    if(ptList.Count==0)
       return 0;
    return ptList[0];
}


但这不是,因为第一种方法将同时评估truefalse条件。因此,这意味着如果IndexOutOfRange,第一个方法将尝试ptList.Count==0异常。

我在这里想念什么吗?还是vs 2008中的错误?

最佳答案

我已经在VS2010和VS2008中进行了检查,这是预期的行为-无例外。如果有错误-它们不在给定的代码片段中

关于c# - IsTrue:TrueCondition:FalseCondition评估两个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3328082/

10-10 09:06