你發佈的重複答案提到了這個問題。
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