我有浮点数组
public float[] Outputs;
在我的代码中的某处,有些东西正在更新数组值并导致 NaN。这是一个非常罕见的错误,我终其一生都无法弄清楚是什么原因造成的。
如何以最少的代码更改进行更改以跟踪它?最好将该数组设为私有并重命名,然后创建一个名为 Outputs 的属性,用于获取和设置,每次设置时都会进行 NaN 检查。然后我可以在设置 NaN 并检索调用堆栈时轻松引发异常,而不是在另一段代码尝试使用它时进一步发现它。像这样的东西-实际上可以编译。
我得到错误:
"Bad array declarator: To declare a managed array the rank specifier precedes
the variable's identifier. To declare a fixed size buffer field, use the fixed
keyword before the field type."
这是我的代码:
public float[] _outputs;
public float Outputs[int index]
{
get
{
return _outputs[index];
}
set
{
if (float.IsNaN(value))
throw new Exception("Blar blar");
_outputs[index] = value;
}
}
编辑:感谢人们的回答,其他寻找答案的人可能想读一下: 为什么 C# 不实现索引属性?