【问题标题】:Is it possible to disambiguate conflicting type name in the using declaration?是否可以在 using 声明中消除冲突类型名称的歧义?
【发布时间】:2012-03-14 17:30:29
【问题描述】:

例如,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();

【问题讨论】:

    标签: c# .net compiler-construction namespaces collision


    【解决方案1】:

    是的。

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

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

    【讨论】:

      【解决方案2】:

      The using Directive

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

      【讨论】:

        【解决方案3】:

        您可以为类型(或命名空间)创建别名。见using Directive (MSDN)

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-04
          • 1970-01-01
          • 2019-02-15
          • 1970-01-01
          相关资源
          最近更新 更多