我想知道用于轮询属性值的最简单代码,以在其getter中执行代码.
目前我正在使用:instance.property.ToString();
,但我宁愿有一些没有可能的副作用或不必要的开销.
Jon*_*eet 16
(我假设你试图避免从简单地将值分配给未使用的变量时得到的警告.)
你可以写一个无操作的扩展方法:
public static void NoOp<T>(this T value)
{
// Do nothing.
}
Run Code Online (Sandbox Code Playgroud)
然后打电话:
instance.SomeProperty.NoOp();
Run Code Online (Sandbox Code Playgroud)
这不会包装价值或触摸它 - 只需调用getter.这种结果的另一个优点ToString
是,如果该值是空引用,则不会发生这种情况.
这将需要每个值类型的方法一旦JIT编译,但是这是一个非常小的代价......
这听起来像是一个非常糟糕的主意.老实说,如果你在一个需要定期执行的getter中有逻辑,那就把它从getter中取出并粘贴在一个方法中.我不愿意跳进去维护这样的代码,一旦我终于弄清楚它为什么会这样做,我会重构它.
归档时间: |
|
查看次数: |
909 次 |
最近记录: |