C# 中这些不同类型的命名空间的含义是什么
本文关键字:命名空间 是什么 同类型 | 更新日期: 2023-09-27 18:36:08
我想知道这段代码的区别
我知道下面的代码包含命名空间
using SampleAngularApp.Models;
using System;
using System.Collections.Generic;
我也知道下面的代码包含一个命名空间
namespace SampleAngularApp.Controllers
{
.......
}
这两种类型的命名空间有什么区别?
namespace SampleAngularApp.Controllers
行定义命名空间(或作用域,或虚拟隔离)。这可能是命名空间的第一个实例,也可能正在添加到已在其他地方定义的同一命名空间。这些命名空间(作用域)独立于物理代码边界,即同一命名空间可以存在于两个或多个不同的程序集中。
using SampleAngularApp.Models;
等行正在导入命名空间,IOW 使该范围可用于本地代码。您不需要使用 using
语句,您可以在每次使用类型或引用方法/属性时指定完整的命名空间,但这只是疯狂的。将该行放入代码中可能只是该过程的一半 - 您还必须添加对程序集的引用,该程序集在要使用的命名空间中具有代码。
namespace SampleAngularApp.Controllers
{
.......
}
您正在声明一个命名空间,该命名空间是一个作用域,可让您组织代码并阻止创建全局唯一类型。
跟
使用 SampleAngularApp.Models;
使用系统;
使用 System.Collections.Generic;
您告诉编译器此代码块正在使用上述命名空间,并且所有类都accessible
。
意味着您可以在应用程序中使用其范围内的每件事。
当您使用"using"键时。您告诉编译器您要使用此命名空间以及类中此命名空间下的每个类
当使用"命名空间"键时,你告诉编译器"{"和"}"之间的这一部分是我的类的命名空间,所以当你在另一个命名空间中使用你的类时,你需要把它添加到 using 语句中。
前任:
Using SampleAngularApp.Controllers
然后我可以在"SampleAngularApp.Controllers"命名空间中使用您的所有类