我想知道此代码的区别
我知道下面的代码包含名称空间
using SampleAngularApp.Models;
using System;
using System.Collections.Generic;
我也知道下面的代码包含一个命名空间
namespace SampleAngularApp.Controllers
{
.......
}
这两种命名空间有什么区别?
答案 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
。
意味着您可以在应用程序中使用其范围内的所有内容。