请参阅以下博客帖子:
http://blogs.msdn.com/ericlippert/archive/2009/06/22/why-doesn-t-c-implement-top-level-methods.aspx
(.)
有人问我:"为什么C#不实现功能X?"总是答案总是一样的:因为从来没有人设计、指定、实现、测试、记录和发布过该功能.所有这六件事都是实现功能所必需的.所有这些都花费了大量的时间、精力和金钱.功能并不便宜,考虑到我们有限的时间、精力和资金预算,我们努力确保我们只提供那些为用户带来最大可能好处的功能.
据我所知,这样一个笼统的回答可能无法解决具体问题.
在这种特殊情况下,明显的用户yield 在过go 还不够大,不足以证明随之而来的语言复杂性是合理的.通过限制不同语言实体之间的嵌套方式,我们(1)将合法程序限制为一种通用的、易于理解的样式,(2)使定义可理解、可指定、可实现、可测试和可记录的"标识符查找"规则成为可能.
通过限制方法体始终位于 struct 或类内部,我们可以更容易地对调用上下文中使用的非限定标识符的含义进行推理;此类对象始终是当前类型(或基类型)的可调用成员.
(.)
还有这篇后续帖子:
http://blogs.msdn.com/ericlippert/archive/2009/06/24/it-already-is-a-scripting-language.aspx个
(.)
就像所有的设计决策一样,当我们面对一些竞争的、引人注目的、有价值的和不可妥协的 idea 时,我们必须找到一个可行的折衷方案.我们不这样做,除非是considering all the possibilites,这就是我们在这种情况下所做的.
(emphasis from original text)