C#属性的评估时间

3 c# properties

class Bar
{
  private byte[] dg;

  Bar(byte[] datagram)
  {
    dg = datagram;
  }

  int Foo
  {
    get { return BitConverter.ToInt16(dg, 8); }
  }
}
Run Code Online (Sandbox Code Playgroud)

什么时候评估属性?在访问Foo时?评估所有属性的调试器让我感到害怕.

Pav*_*aev 8

是的,属性只是调用getaccessor方法的语法糖.每次读取属性时,该方法都会执行.是的,这包括调试器(这就是为什么如果你的属性gettors有副作用,调试实际上会影响你的程序的工作方式).