在C#中命名空间的背后?

时间:2019-03-05 08:05:17

标签: c# namespaces

using System;

namespace HelloWorld
{
    partial class Program
    {
          static void Main(string[] args)
        {
            Console.WriteLine();
        }
    }
} 


我的问题是,当我们在顶部使用System时,该名称空间中的所有代码是否都在此名称空间(HelloWorld)的后台加载?

2 个答案:

答案 0 :(得分:0)

using不会更改代码的加载方式。它仅更改在编译器解析和编译代码时允许隐式采用的命名空间。我认为编译器生成的输出与您不使用using相同,但是显式地将其写入每个引用的全名。

但是要回答另一个问题,是的,名称空间中的每个对象都会受到影响,因此您应该能够引用Console,而不必在其之前显式包含System.。请记住,using与添加引用不同。如果没有对System.dll的引用,您仍然会收到错误消息。

答案 1 :(得分:0)

命名空间对编译后的程序不起作用,这只是组织代码的一种方式。幕后没有任何东西。当两个类位于同一名称空间中时,您无需添加using即可引用该类。

当然,如果您使用的名称空间位于未自动引用的程序集中,则还必须添加一个引用。 “使用”对您没有帮助。

这里是命名空间的很好参考:

https://www.programiz.com/csharp-programming/namespaces