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

Например, 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 ]

5 голосов
/ 24 февраля 2012

Вы можете создать псевдоним для типа (или пространства имен). См. с использованием Директивы (MSDN)

using TimersTimer = System.Timers.Timer;

....

var myTimer = new TimersTimer();
4 голосов
/ 24 февраля 2012

Да.

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

Теперь Timer относится к System.Timers.Timer, но все остальное из любого пространства имен по-прежнему доступно без префикса.

0 голосов
/ 24 февраля 2012

См. Директива об использовании

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