知易网
白蓝主题五 · 清爽阅读
首页  > WiFi覆盖

C#开发中using关键字的几种实用场景

在写C#代码的时候,using这个词几乎天天见。很多人一开始只知道它用来引入命名空间,比如 using System;,但其实它还有不少实用的用法,特别是在资源管理和代码整洁性上,能帮我们省去不少麻烦。

引入命名空间

最常见的用法就是在文件开头写 using,把需要的命名空间引进来,这样就不用每次写全称。比如:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello"); // 不用写 System.Console
    }
}

这就像你住在小区里,不用每次都报街道门牌号,直接说“我是3栋的”就行。

简化资源释放:using语句块

有些对象用了就得赶紧关,比如文件、数据库连接、网络流。忘了关就会占资源,时间一长程序就卡。这时候 using 就能自动帮你收尾。

比如读个配置文件:

using (FileStream fs = new FileStream("config.txt", FileMode.Open))
{
    using (StreamReader reader = new StreamReader(fs))
    {
        string content = reader.ReadToEnd();
        Console.WriteLine(content);
    }
} // reader 和 fs 会自动调用 Dispose() 关闭

只要对象实现了 IDisposable 接口,就能扔进 using 块里,出了大括号自动清理,比写 try...finally 省事多了。

using别名指令

当两个类名字一样但来自不同命名空间时,可以用 using 给它们起个别名,避免冲突。

比如你同时引用了两个库,都有一个叫 Logger 的类:

using MyLogger = MyCompany.Logging.Logger;
using ThirdPartyLogger = ThirdParty.Tools.Logger;

class Program
{
    static void Main()
    {
        MyLogger logger1 = new MyLogger();
        ThirdPartyLogger logger2 = new ThirdPartyLogger();
    }
}

这就像是你有两个朋友都叫“小李”,一个叫“财务小李”,一个叫“IT小李”,叫的时候分得清。

全局using(C# 10+)

如果你觉得每个文件都写一堆 using 很烦,从 C# 10 开始支持全局引入。只需要在一个文件里写:

global using System;
global using System.Collections.Generic;
global using MyProject.Utilities;

这样一来,整个项目都不用重复写了,适合那些几乎所有文件都要用的基础命名空间。

不过也别滥用,不然别人看不懂你代码里用的类型是从哪来的。