class Bar
{
private byte[] dg;
Bar(byte[] datagram)
{
dg = datagram;
}
int Foo
{
get { return BitConverter.ToInt16(dg, 8); }
}
}
什么时候评估属性?在访问Foo时?评估所有属性的调试器让我感到害怕。
答案 0 :(得分:8)
是的,属性只是调用get
访问器方法的语法糖。每次读取属性时,该方法都会执行。是的,这包括调试器(这就是为什么如果你的属性gettors有副作用,调试实际上会影响你的程序的工作方式)。
答案 1 :(得分:2)
是的,C#属性只是特殊方法的语法糖,因此在调用时会对它们进行求值,就像任何其他类型的实例方法一样。