.net 为什么这个Int32总和总是返回0?

.net 为什么这个Int32总和总是返回0?,.net,integer,.net,Integer,我知道至少有一个值不是零,和仍然始终是0 为什么? 这似乎是一个优先问题-基本上,如果iLocks[1,1]为null则需要0否则它将使用另一个包含所有加法的分支 尝试添加括号: Int32 sum = (iLocks[1, 1] == (Int32?)null ? 0 : (Int32)iLocks[1, 1]) + (iLocks[2, 1] == (Int32?)null ? 0 : (Int32)iLocks[2, 1]) + (iLocks[3, 1] == (

我知道至少有一个值不是零,和仍然始终是0
为什么?


这似乎是一个优先问题-基本上,如果
iLocks[1,1]
null
则需要
0
否则它将使用另一个包含所有加法的分支

尝试添加括号:

Int32 sum =
    (iLocks[1, 1] == (Int32?)null ? 0 : (Int32)iLocks[1, 1]) +
    (iLocks[2, 1] == (Int32?)null ? 0 : (Int32)iLocks[2, 1]) +
    (iLocks[3, 1] == (Int32?)null ? 0 : (Int32)iLocks[3, 1]) +
    (iLocks[4, 1] == (Int32?)null ? 0 : (Int32)iLocks[4, 1]) +
    (iLocks[5, 1] == (Int32?)null ? 0 : (Int32)iLocks[5, 1]) +
    (iLocks[6, 1] == (Int32?)null ? 0 : (Int32)iLocks[6, 1]);
说:

条件运算符是右关联的,这意味着操作是从右向左分组的。例如,形式a的表达式?b:c?d:e被评估为a?b:(c?d:e)


这似乎是一个优先问题-基本上,如果
iLocks[1,1]
null
则需要
0
否则它将使用另一个包含所有加法的分支

尝试添加括号:

Int32 sum =
    (iLocks[1, 1] == (Int32?)null ? 0 : (Int32)iLocks[1, 1]) +
    (iLocks[2, 1] == (Int32?)null ? 0 : (Int32)iLocks[2, 1]) +
    (iLocks[3, 1] == (Int32?)null ? 0 : (Int32)iLocks[3, 1]) +
    (iLocks[4, 1] == (Int32?)null ? 0 : (Int32)iLocks[4, 1]) +
    (iLocks[5, 1] == (Int32?)null ? 0 : (Int32)iLocks[5, 1]) +
    (iLocks[6, 1] == (Int32?)null ? 0 : (Int32)iLocks[6, 1]);
说:

条件运算符是右关联的,这意味着操作是从右向左分组的。例如,形式a的表达式?b:c?d:e被评估为a?b:(c?d:e)

学术LINQ示例:

private IEnumerable<T> GetItems<T>(int j, T[,] array)
{
    var length = array.GetLength(0);
    for (int i = 0; i < length; i++)
    {
        yield return array[i, j];
    }
}
学术LINQ示例:

private IEnumerable<T> GetItems<T>(int j, T[,] array)
{
    var length = array.GetLength(0);
    for (int i = 0; i < length; i++)
    {
        yield return array[i, j];
    }
}
添加括号后,操作员也将工作(如Michael所述):

或者,仅仅为了踢球,结合LINQ:

Int32 sum = Enumerable.Range(1,6).Select(i => iLocks[i,1] ?? 0).Sum();
添加括号后,操作员也将工作(如Michael所述):

或者,仅仅为了踢球,结合LINQ:

Int32 sum = Enumerable.Range(1,6).Select(i => iLocks[i,1] ?? 0).Sum();

这是我自己想出来的。我需要等7分钟才能接受。我只是自己想出来的。我需要等7分钟才能接受。甜蜜的语法-再加3到goSweet语法-再加3到goSweet语法