我搜索了很多文章来理解命名空间的概念?但我无法理解。 任何人都可以用简单的例子解释命名空间的概念吗我们为什么要导入命名空间?
答案 0 :(得分: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
答案 1 :(得分:0)
命名空间用于整理类别中的对象,控制对象的范围。
有关.NET命名空间的更多详细信息:http://msdn.microsoft.com/en-us/library/0d941h9d
请注意,名称空间概念不仅限于.NET,还适用于许多编程语言。
答案 2 :(得分:0)
为何选择命名空间?
命名空间用于组织代码。它允许您组织代码并为您提供创建全局唯一类型的方法,并避免名称冲突。
e.g。
假设您已在代码中创建了一个类Foo
。在同一个项目中,您正在使用某些第三方库,其中也存在具有相同名称的类。在这种情况下,当您引用类Foo
时,编译器将无法解析它。
但是,这个问题可以通过命名空间来解决。您正在使用的库中的Foo
类属于开发人员指定的某个命名空间。 (通常,它包含公司名称或某些唯一标识符)。并且您的Foo
类属于您指定的命名空间。因此,在使用它时,您可以指定类的完全限定名称,如<Namespace>.Foo
。这将使编译器易于解析引用。
此外,您自己可以使用命名空间对类进行分类,以根据其目的对其进行分类。哪个更容易维护。 (例如CoreFramework.Foo
,UIHelper.Bar
等......)
我们为什么要导入命名空间?
现在,在使用类时,您已按名称空间进行了分类。您必须告诉编译器引用类包含哪个命名空间。默认情况下,编译器在同一名称空间中查找类。如果您要引用的类属于另一个名称空间,则您必须指定该类的完全限定名称(即Namespace.Foo
),或者您可以使用import语句在类的开头通知编译器,代码包含该类包含对属于此命名空间的类的引用。