我在尝试对现有代码进行格式化时遇到错误.最初,代码具有using
在命名空间外声明的指令:
using System.Collections.Generic;
namespace MyNamespace
{
using IntPair = KeyValuePair<int, int>;
}
Run Code Online (Sandbox Code Playgroud)
当我试图using
在语句中插入指令(以符合StyleCop的规则)时,我在别名指令中遇到错误,我必须完全限定它:
namespace MyNamespace
{
using System.Collections.Generic;
//using IntPair = KeyValuePair<int, int>; // Error!
using IntPair = System.Collections.Generic.KeyValuePair<int, int>; // works
}
Run Code Online (Sandbox Code Playgroud)
我想知道两种情况之间有什么区别?(import-style)using
指令的位置是否重要?
是的,它确实 - 在很小程度上.有关范围/本地名称的边缘情况,请参阅Eric Lippert的博客.
有关具体示例(特定于别名用法):
using System;
using Foo = Bar;
public static class Bar {
public static void Test() { Console.WriteLine("outer"); }
}
namespace MyNamespace {
//using Foo = Bar;
public static class Bar {
public static void Test() { Console.WriteLine("inner"); }
}
static class Program {
static void Main() {
Foo.Test();
}
}
}
Run Code Online (Sandbox Code Playgroud)