是否有可能在数组中获取null而不是超出范围的异常?

时间:2019-04-21 01:03:29

标签: c#

bool?[,] logicTable = new bool?[width, height];

for (int i = 0; i < width; ++i)
   for (int j = 0; j < height; j++)      
       if (logicTable?[i, j - 1] == true)

{...}

这时,我的索引超出范围异常(因为j-1给出-1)。这种表达是否可能:

logicTable?[i, j - 1]

如果其中一个索引值超出范围,是否可以快速返回空值?

1 个答案:

答案 0 :(得分:2)

如果使用标准数组(如您的示例中),则不可能,因为它们始终为0索引,并且总是引发越界访问。

对于超出范围的情况,您可以创建自己的包装器,该包装器返回Preserve log upon navigation,这可以通过自动提供sentinel values来简化某些算法:

null