如果只使用一次本地函数,那么使用它们还有什么意义吗?

Aus*_*yan 3 c# methods refactoring local c#-7.0

想象一下我有这样的代码:

public void Foo()
{
    // Do bar work
    // Do baz work
    // Do foobar work
}
Run Code Online (Sandbox Code Playgroud)

我意识到我可以(而且应该因为它做了不止一件事)将其重构为:

public void Foo()
{
    bar();
    baz();
    foobar();
}

private void bar()    { /* do bar work */ }
private void baz()    { /* do baz work */ }
private void foobar() { /* do foobar work */ }
Run Code Online (Sandbox Code Playgroud)

但后来我意识到我永远不会在 之外使用这些功能Foo(),因此这些功能只会让主页和自动完成变得混乱。我可以摆脱这个:

public void Foo()
{
    bar();
    baz();
    foobar();

    void bar()    { /* do bar work */ }
    void baz()    { /* do baz work */ }
    void foobar() { /* do foobar work */ }
}
Run Code Online (Sandbox Code Playgroud)

这将使事情变得更加整洁和更少混乱,但我现在真正所做的只是使该方法更长而不是更短。

InB*_*een 7

\n

这将使事情变得更加整洁和更少混乱,但我现在真正所做的只是使该方法更长而不是更短。

\n
\n\n

不,你还没有\xe2\x80\x99t。您基本上是在说,具有一种执行大量操作的方法的类与执行相同工作但具有多个更短且更易于维护的方法的类之间没有任何区别。

\n\n

本地函数就像方法一样,它们包含在另一个方法中这一事实并不妨碍整体更容易维护;功能被封装在明确定义的范围内。

\n