你发布的重复答案提到了这个问题。
VB.Net具有“根名称空间”的概念。将Namespace语句添加到代码文件时,给出的名称与根名称空间组合形成完整的名称空间。
因此,在VB.Net中,如果您的根名称空间是MyRoot,然后创建一个类并使用MyNamespace命名空间环绕,那么完整的类名称为MyRoot.MyNamespace.ClassName。如果您不使用Namespace语句,则完整的类名称为MyRoot.ClassName。换句话说,根名称空间设置有助于名称空间的名称。
在C#中,情况并非如此。 C#有一个“默认命名空间”。这只是一个名称空间定义,在创建它们时会自动添加到新类中。如果删除名称空间声明,那么该类没有名称空间。换句话说,默认的名称空间设置实际上不会影响名称空间的名称。
在C#中,命名空间声明中的任何内容都是使用的命名空间。默认名称空间设置仅确定代码文件中默认插入的内容。
采取具有 “TestVBConsole” 的根命名空间设置,并在课堂上没有命名空间声明中VB程序:
Module Module1
Sub Main()
Dim tc As New TestClass
Console.WriteLine(tc.GetType().FullName)
End Sub
End Module
这个类
Public Class TestClass
Public aField As String = "Default"
End Class
输出是
TestVBConsole.TestClass
C#输出中的相同程序
TestClass
至于你的问题,我不认为有任何方法可以重写这种行为。你只需要在C#中记住,以确保你的命名空间声明是正确的。
我猜帮我关闭此为重复 - http://stackoverflow.com/questions/196068/how-do-you-enable-visual-basic-net-namespace-by-default – BuddyJoe 2009-12-17 17:42:32
但请评论是否有一些额外的符号?或我缺少的关键字? – BuddyJoe 2009-12-17 17:56:18