如果我做了这样的事情:
public int Foo
{
get
{
return GetFoo() + 5;
int GetFoo() => 3;
}
}
它实际上会编译,这让我想知道这是好事还是坏事。
现在,显然这个特定的例子可以重构为:public int Foo => 8;
,但是其他情况下可能有一些本地方法,并在其主要get
部分中进行处理。
请记住,C#实际上会在编译代码时将GetFoo
移动到之外的属性或方法中,这应该具有与属性完全相同的性能调用正常方法。
然而,如果有人觉得需要在一个属性中使用本地函数,那么这是一个标志,表明该属性做了太多工作而应该是一种方法吗?