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

问题描述 投票:0回答:3

例如,

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

之类的东西
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();
c# .net namespaces collision
3个回答
10
投票

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

using TimersTimer = System.Timers.Timer;

....

var myTimer = new TimersTimer();

6
投票

是的。

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

现在

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


1
投票

参见使用指令

using MyAlias = System.Timers.Timer;
var foo = new MyAlias();
© www.soinside.com 2019 - 2024. All rights reserved.