我们可以在命名空间中有.cs文件,但没有类吗?

Boh*_*ohn -2 c# class

在C#程序集中,我们是否可以拥有一个文件,例如File1.cs与该程序集在同一名称空间中,但它没有类?例如,像这样的事情:

namespace something.otherthing
{
  public enum E1
  { ..... }

  public enum E2
  { ...  }  
}
Run Code Online (Sandbox Code Playgroud)

我认为这应该是错的?但我们可以在VB 6.0中做到这一点,但在C#中,每件事都应该是一个类.我想确定一下.

Luk*_*keH 11

是的,这是完全合法的C#代码.

你能不能为自己测试一下吗?

  • `Something.Otherthing.E1` (7认同)
  • 它实际上是`something.otherthing.E1`.C#区分大小写:) (4认同)

Jou*_*aas 5

文件名与名称空间无关.位于文件顶部的任何命名空间都是枚举所在的位置,因此,如果这是something.otherthing枚举可用的something.otherthing.E1.你可以在一个文件中有多个类,你可以在一个文件中有一个类的一部分,你可以在一个文件中没有类,你可以在文件中包含类的枚举等.文件只适合你,它们是什么都不.