【发布时间】:2011-08-18 13:33:55
【问题描述】:
是否可以在 C# 中的另一个方法中声明一个方法?
比如这样:
void OuterMethod()
{
int anything = 1;
InnerMethod(); // call function
void InnerMethod()
{
int PlitschPlatsch = 2;
}
}
【问题讨论】:
-
为什么要这样做?你想解决什么问题?你想模拟什么情况?
-
@Cody Gray 我有一个包含大量代码的方法,我想对其进行结构化以便更好地阅读和理解。由于其他方法不需要这部分代码,所以我想到了将代码拆分到方法内部。
-
是的,这正是我问的原因。很多乐于助人的人都在谈论 lambdas 和
Funcs,但这并不是您真正想要的。如果您认为需要从现有方法中重构代码,只需在.cs文件中创建一个新方法,并确保将其标记为private。如果您不需要从其他任何地方调用它,那么不要。没有理由不必要地把事情复杂化。 -
Cody Gray:为什么每个结构都必须只有 3 个级别? (namespace, class, function) 这等于只有 3 级文件夹深度,这还不够。这是由用户决定的。某些功能可能更好地放置在同一类的其他功能不可访问的位置,因为它们可能只能一起调用或按特定顺序调用。 > 20 年的发展,没有人想到这一点。相反,我们有 lambda...