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

本文关键字:命名空间 是什么 同类型 | 更新日期: 2023-09-27 18:36:08

我想知道这段代码的区别

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

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

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

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

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

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

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

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

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

您正在声明一个命名空间,该命名空间是一个作用域,可让您组织代码并阻止创建全局唯一类型。

使用 SampleAngularApp.Models;

使用系统;

使用 System.Collections.Generic;

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

意味着您可以在应用程序中使用其范围内的每件事。

当您使用"using"键时。您告诉编译器您要使用此命名空间以及类中此命名空间下的每个类

当使用"命名空间"键时,

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

前任:

Using SampleAngularApp.Controllers

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