1

如果我做了这样的事情:

public int Foo
{
    get
    {
        return GetFoo() + 5;

        int GetFoo() => 3;
    }
}

它实际上会编译,这让我想知道这是一个好还是坏的做法。

现在,显然这个特定示例可以重构为:public int Foo => 8;,但其他情况可能有一些本地方法并在它的主要get部分做一些事情。

请记住,无论何时编译代码,C# 实际上都会移出它所GetFoo 的属性或方法,这应该与调用普通方法的属性具有几乎完全相同的性能。

但是,如果有人觉得需要在属性中使用局部函数,这是否表明该属性正在做太多工作而应该是一种方法?

4

0 回答 0