c#中这些不同类型命名空间的含义是什么

时间:2013-10-21 09:03:34

标签: c#

我想知道此代码的区别

我知道下面的代码包含名称空间

using SampleAngularApp.Models;
using System;
using System.Collections.Generic;

我也知道下面的代码包含一个命名空间

namespace SampleAngularApp.Controllers
{
    .......
}

这两种命名空间有什么区别?

3 个答案:

答案 0 :(得分:3)

namespace SampleAngularApp.Controllers定义命名空间(或范围或虚拟隔离)。这可能是命名空间的第一个实例,也可能是添加到已在其他位置定义的同一命名空间。这些名称空间(作用域)与物理代码边界无关,即同一名称空间可以存在于两个或多个不同的程序集中。

using SampleAngularApp.Models;导入命名空间,IOW使该范围可用于本地代码。您不需要使用using语句,您可以在每次使用类型或引用方法/属性时指定完整命名空间,但这只是疯狂。将该行放在代码中可能只是进程的一半 - 您还必须添加对程序集的引用,该程序集中包含您要使用的命名空间中的代码。

答案 1 :(得分:1)

使用“使用”键时。您告诉编译器您要使用此命名空间以及类

中此命名空间下的每个类

当使用'namespace'键时,你告诉编译器'{'和'}'之间的这一部分是我的类的命名空间,所以当你在另一个命名空间中使用你的类时,你需要在使用它时添加它言。

前:

Using SampleAngularApp.Controllers

然后我可以在'SampleAngularApp.Controllers'命名空间

中使用所有类

答案 2 :(得分:1)

namespace SampleAngularApp.Controllers { ....... }

您正在声明一个命名空间,该命名空间是一个允许您组织代码并阻止创建全局唯一类型的范围。

使用

  

使用SampleAngularApp.Models;

     

使用System;

     

使用System.Collections.Generic;

您告诉编译器这个代码块正在使用上面的命名空间,并且所有类都是accessible

意味着您可以在应用程序中使用其范围内的所有内容。