【问题标题】:Concept of Namespace in Dotnet? [duplicate]Dotnet 中命名空间的概念? [复制]
【发布时间】:2013-10-17 16:57:21
【问题描述】:

我搜索了很多文章来了解命名空间的概念?但我无法理解。 谁能用简单的例子解释命名空间的概念?为什么要导入命名空间?

【问题讨论】:

    标签: namespaces


    【解决方案1】:

    以下是伪代码,希望清楚

    namespace1.SomeClass

    namespace2.SomeClass

    var x = new SomeClass(); //which class are we trying to instantiate?

    var y = new namespace1.SomeClass(); //now compiler and everyone else knows

    【讨论】:

      【解决方案2】:

      命名空间用于在类别中组织对象并控制对象的范围

      有关 .NET 命名空间的更多详细信息:http://msdn.microsoft.com/en-us/library/0d941h9d

      请注意,命名空间概念不仅限于 .NET,还适用于许多编程语言。

      【讨论】:

        【解决方案3】:

        为什么选择命名空间?

        命名空间用于组织代码。它可以让您组织代码并为您提供一种创建全局唯一类型并避免名称冲突的方法。

        例如

        假设您在代码中创建了一个类Foo。在同一个项目中,您正在使用一些第三方库,其中也存在同名的类。在这种情况下,当您引用类Foo 时,编译器将无法解析它。 但是,这个问题可以通过命名空间来解决。您正在使用的库中的Foo 类属于它的开发人员指定的某个命名空间。 (通常,它包含公司名称或唯一标识符)。并且您的 Foo 类属于您指定的命名空间。因此,在使用它时,您可以指定类的完全限定名称,如<Namespace>.Foo。这将使编译器更容易解析引用。

        此外,您自己也可以使用命名空间对您的类进行分类,以根据其用途对其进行分叉。这将更容易维护。 (例如CoreFramework.FooUIHelper.Bar 等...)

        我们为什么要导入命名空间?

        现在,在使用类时,您已按命名空间分类。您必须告诉编译器引用类包含在哪个命名空间中。默认情况下,编译器会在同一命名空间中查找类。如果您所引用的类属于另一个命名空间,则您必须指定类的完全限定名称(即Namespace.Foo),或者您可以在类的开头使用 import 语句通知编译器,该类的代码包含对属于此命名空间的类的引用。

        【讨论】:

          猜你喜欢
          • 2021-08-29
          • 1970-01-01
          • 2018-01-14
          • 2018-03-16
          • 2015-05-14
          • 2023-03-10
          • 1970-01-01
          • 2016-11-04
          • 2020-01-04
          相关资源
          最近更新 更多