What namespace will a class have if no namespace is defined

后端 未结 3 2029
半阙折子戏
半阙折子戏 2020-11-30 08:33

In C#, if I create a class with no namespace, what namespace will I use when trying to instantiate the class?

For example, assume main is...

namespac         


        
相关标签:
3条回答
  • 2020-11-30 08:55

    It's in the global namespace and can be referenced like this:

    var x = new global::test();

    0 讨论(0)
  • 2020-11-30 09:02

    In the addition to above answers, it is important to note, what all Type, regardless of its declaration location, has a "fully qualified name", which begins from "global::"

    From "O'Relly. C# in a Nutshell":

    All type names are converted to fully qualified names at compile time. Intermediate Language (IL) code contains no unqualified or partially qualified names

    0 讨论(0)
  • 2020-11-30 09:06

    Types not defined within a namespace will be in the global namespace.

    The global contextual keyword, when it comes before the :: operator, refers to the global namespace, which is the default namespace for any C# program and is otherwise unnamed.

    The following example shows how to use the global contextual keyword to specify that the class TestApp is defined in the global namespace:

    C# class TestClass : global::TestApp { }
    
    0 讨论(0)
提交回复
热议问题