C# 有命名空间(Namespace),也就 意味着一个项目中在不同空间下可能存在同名的类。
为什么要引入命名空间这个概念呢,是为了制造混淆吗,😂。是文件太多命名怕重复吗。存在即有其道理。初学C# 我感觉不到这玩意有什么好,写法上复杂了,我们还得关注这个类属于哪个空间。
例子
using System;
namespace first_space
{
class namespace_cl
{
public void func()
{
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space
{
class namespace_cl
{
public void func()
{
Console.WriteLine("Inside second_space");
}
}
}
class TestClass
{
static void Main(string[] args)
{
first_space.namespace_cl fc = new first_space.namespace_cl();
second_space.namespace_cl sc = new second_space.namespace_cl();
fc.func();
sc.func();
Console.ReadKey();
}
}
通过这个例子我们可以看到在不同的命名空间下允许存在同名的类。
需要注意的是在调用对象方法的时候,需要加上空间名,按名寻找该空间下的类。
using 关键字
using 关键字表明程序使用的是给定命名空间中的名称。例如,我们在程序中使用 System 命名空间,其中定义了类 Console。我们可以只写:
Console.WriteLine ("Hello there");
我们可以写完全限定名称,如下:
System.Console.WriteLine("Hello there");
上面例子里的代码应该加上如下命名空间:
using System;
using first_space;
using second_space;
...
嵌套命名空间
…是觉得不够复杂吗,C# 你有意思吗。
感觉这玩意的存在就是来恶心人的。