1.引入命名空间的类库方法,或者命名空间别名;
允许在命名空间中使用类型,这样就不必在该命名空间中限定某个类型的使用: 复制代码 using System.Text;
为命名空间或类型创建别名。这称为“using 别名指令”。 复制代码 using Project = PC.MyCompany.Project;
2.资源释放的作用范围:跳出using作用的范围后就会被释放。
如果一个类实现了接口IDisposable(这个接口只有一个方法void Dispose()),当这个类在using中创建的时候,using代码块结束时会自动调用这个类中实现了接口IDisposable的Dispose()方法;
using有两个主要用途:
作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
作为语句,用于定义一个范围,在此范围的末尾将释放对象。
二、C++,using的作用范围
cpp内有效,如果在另一个cpp文件中不加的话,编译会出错。如果要在整个工程中有效,可以把using写在头文件中,然后每个源文件都包含该头文件。
三、C++中using的作用
1.在当前文件中引入命名空间
这是我们最熟悉的用法,例如:using namespace std;
2.在子类中使用 using 声明引入基类成员名称(参见C++ primer)
在private或者protected继承时,基类成员的访问级别在派生类中更受限:
class Base {
public:
std::size_t size() const { return n; }
protected:
std::size_t n;
};
class Derived : private Base { . . . };
在这一继承层次中,成员函数 size 在 Base 中为 public,但在 Derived 中为 private。为了使 size 在 Derived 中成为 public,可以在 Derived 的 public
部分增加一个 using 声明。如下这样改变 Derived 的定义,可以使 size 成员能够被用户访问,并使 n 能够被 Derived 的派生类访问: