-2

我想知道这段代码的区别

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

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

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

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

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

4

3 回答 3

3

该行namespace SampleAngularApp.Controllers定义了一个命名空间(或范围,或虚拟隔离)。这可能是命名空间的第一个实例,或者它可能正在添加到已在别处定义的同一个命名空间。这些命名空间(范围)独立于物理代码边界,即相同的命名空间可以存在于两个或多个不同的程序集中。

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

于 2013-10-21T09:06:53.750 回答
1

当您使用“使用”键时。你告诉编译器你想在你的类中使用这个命名空间和这个命名空间下的每个类

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

前任:

Using SampleAngularApp.Controllers

然后我可以在“SampleAngularApp.Controllers”命名空间中使用你所有的类

于 2013-10-21T09:10:29.627 回答
1

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

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

使用 SampleAngularApp.Models;

使用系统;

使用 System.Collections.Generic;

您正在告诉编译器此代码块正在使用上述命名空间,并且所有类都是accessible.

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

于 2013-10-21T09:22:28.077 回答