是否可以在using声明中消除冲突类型名称的歧义

本文关键字:类型 冲突 歧义 using 声明 是否 | 更新日期: 2023-09-27 18:25:51

例如,System.ThreadingSystem.Timers都具有类Timer。因此,如果我想在使用System.Threading的类中使用System.Timers.Timer,我必须使用之类的东西

System.Timers.Timer myTimer = new System.Timers.Timer();

每次我想声明/初始化定时器时。有没有办法告诉编译器"每当我说Timer时,除非另有声明,否则使用System.Timers.Timer?"这样我就可以使用简单的了

Timer t = new Timer();

在默认情况下,表示System.Timers.Timer,除非我明确指定

System.Threading.Timer t2 = new System.Threading.Timer();

是否可以在using声明中消除冲突类型名称的歧义

您可以为类型(或命名空间)创建别名。请参阅使用指令(MSDN)

using TimersTimer = System.Timers.Timer;
....
var myTimer = new TimersTimer();

是。

using System.Threading;
using System.Timers;
using Timer = System.Timers.Timer;

现在Timer指的是System.Timers.Timer,但任何一个命名空间中的其他内容都可以在没有前缀的情况下使用。

参见使用指令

using MyAlias = System.Timers.Timer;
var foo = new MyAlias();