using 关键字的使用
Using 关键字有三个主要用途:
1) using 语句定义一个范围,在此范围的末尾将释放对象。
2) using 指令为命名空间创建别名,或导入在其他命名空间中定义的类型。
3) using static 指令导入单个类的成员。
//#csg001-01
//using 指定一个命名空间,可以使你在无需指定命名空间的情况下使用命名空间内的类型。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Common;
//#csg001-02
//using static 指令指定一种类型,可以使你在无需指定类型名称即可访问其静态成员和嵌套类型。
//该指令是在 C# 6 中引入的。
using static System.Math;
//#csg001-03
//为命名空间指定别名
using Unicode = System.Text.Unicode;
//为类型指定别名
using NewName = System.Text.Encoder;
//using 别名指令的右侧不能有开放式泛型类型。
//例如,不能为 List<T> 创建 using 别名,但可以为 List<int> 创建 using 别名。
using UsingAlias = System.Collections.Generic.List<string>;
namespace SampleNamespace
{
//#csg001-04
//除了在源代码初始位置使用using,还可以在命名空间的初始位置使用using。
using System.Data;
using System.IO;
class SampleClassA
{
public void Function()
{
//#csg001-02
//直接使用System.Math里的静态方法
Console.Write(Abs(123.456));
}
public void Function1()
{
//#csg001-05
//提供可确保 IDisposable 被正确使用的方便语法。
//从 C#8.0 开始,using 语句可支持 IAsyncDisposable 。
using (var stream = new MemoryStream())
{
//stream 操作...
//stream 对象会在该大括号结束后被释放。
}
//#csg001-06
//从 C# 8.0 开始,可以不需要使用大括号
//当所在方法结束时执行 IDisposable 或 IAsyncDisposable 操作。
using var stream2 = new MemoryStream();
//stream2 操作...
//stream2 对象会在所在方法结束后被释放。
}
}
}