Visual Studio按错误的顺序排序使用

时间:2011-07-07 08:08:39

标签: visual-studio-2010

我刚刚在Visual Studio 2010中发现了一个令人烦恼的错误。看起来Sort Usings功能正在以错误的顺序对我的使用进行排序。看看这段代码:

namespace Test
{
  using Test.WebPages.Utilities;
  using Test.WebPages.WebRef;
  using Test.WebPages.ViewModels;

  namespace WebPages
  {
    namespace Utilities { class A { } }
    namespace WebRef { class B { } }
    namespace ViewModels { class C { } }
  }

  public class Program
  {
    public static void Main()
    {
      var a = new A();
      var b = new B();
      var c = new C();
    }
  }
}

显然排序顺序是错误的。当你使用StyleCop SA1210时很烦人。

2 个答案:

答案 0 :(得分:0)

我认为Sort Usings不会对命名空间内的使用做任何事情

答案 1 :(得分:0)

啊哈,现在我有了更多的见解。我试过这个:

using Test.W; // place W here, initially
using Test.U;
using Test.V;
using Test.X;
using Test.Y;

namespace Test
{
  namespace U { class A { } }
  namespace V { class B { } }
  namespace W { class C { } }
  namespace X { class D { } }
  namespace Y { class E { } }

  public class Program
  {
    public static void Main()
    {
      new A();
      new B();
      new C();
      new D();
      new E();
    }
  }
}

对上述用法进行排序会导致:

using Test.U;
using Test.W; // place W here, initially
using Test.V;
using Test.X;
using Test.Y;

当然是错的。但是,我最初尝试了这个订单:

using Test.U;
using Test.V;
using Test.X;
using Test.Y;
using Test.W; // place W here, initially

对此进行排序会产生正确的顺序:

using Test.U;
using Test.V;
using Test.W; // place W here, initially
using Test.X;
using Test.Y;

很奇怪。