26

在 Java 中,文件名必须是该 java 文件中定义的公共类名。C#有类似的要求吗?我可以有一个 A.cs 文件,里面只定义一个公共 B 类吗?谢谢,

4

4 回答 4

28

不,没有类似的要求。

是的,你可以这样做。

然而,这被认为是不好的做法。

如果您这样做,Microsoft StyleCop 会警告您,但一切都会正常编译。

于 2010-02-08T20:33:23.140 回答
26

不,不要求文件名与文件中定义的单个公共类匹配。事实上,包含文件的名称和文件中定义的任何类之间没有必要存在关系。此声明中隐含的是,甚至可以在同一个封闭文件中定义多个类(即使有多个公共类,与 Java 不同)。partial此外,可以使用关键字在多个文件中定义一个类。

然而,最佳实践是为每个文件定义一个类,并为文件赋予与正在定义的类(或结构等)相同的名称。

于 2010-02-08T20:33:20.227 回答
3

不,在 C# 中,您不必将类命名为与文件相同。

沿着类似的路线,您可以public在文件中包含多个类。Java 只让你拥有一个。

这有助于在一个文件中定义一些公共枚举。几个小班的。

然而,在一个文件中投入太多是不好的做法。

于 2010-02-08T20:33:44.793 回答
2

可以有一个A.cs包含公共类的文件,B但这被认为是不好的做法。

于 2010-02-08T20:34:24.293 回答