Можно ли устранить неоднозначность имени конфликтующего типа в объявлении using?


Например, и 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();
3 6

3 ответа:

Можно создать псевдоним для типа (или пространства имен). Смотрите using Directive (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

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