是否可以消除使用声明中冲突类型名称的歧义?

Lou*_*hys 6 .net c# compiler-construction namespaces collision

例如,双方System.ThreadingSystem.Timers有类Timer.因此,如果我想System.Timers.Timer在一个使用的类中使用System.Threading,我必须使用类似的东西

System.Timers.Timer myTimer = new System.Timers.Timer();
Run Code Online (Sandbox Code Playgroud)

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

Timer t = new Timer();
Run Code Online (Sandbox Code Playgroud)

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

System.Threading.Timer t2 = new System.Threading.Timer();
Run Code Online (Sandbox Code Playgroud)

Geo*_*ett 5

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

using TimersTimer = System.Timers.Timer;

....

var myTimer = new TimersTimer();
Run Code Online (Sandbox Code Playgroud)


Wee*_*ble 5

是的。

using System.Threading;
using System.Timers;
using Timer = System.Timers.Timer;
Run Code Online (Sandbox Code Playgroud)

现在Timer引用System.Timers.Timer,但任一命名空间中的其他所有内容仍然可用,无需前缀。