【问题标题】:behind the scenes of namespace in c#?c# 中命名空间的幕后花絮?
【发布时间】:2019-03-05 08:05:17
【问题描述】:
using System;

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


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

【问题讨论】:

标签: c# namespaces


【解决方案1】:

using 不会改变代码的加载方式。它仅更改编译器解析和编译代码时允许隐式假定的命名空间。我认为编译器生成的输出与不使用using 一样,而是显式地写下每个引用的全名。

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

【讨论】:

    【解决方案2】:

    命名空间对编译后的程序没有任何作用,它只是一种组织代码的方式。幕后没有加载任何内容。当两个类在同一个命名空间中时,您无需添加 using 即可引用该类。

    当然,如果您使用的命名空间位于未自动引用的程序集中,您还必须添加引用。 'using' 不会为您做到这一点。

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-09
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 2017-05-03
      相关资源
      最近更新 更多