当我在 C# 中创建一个新的类文件时,通常的结构如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UnitTest
{
class Class1
{
}
}
StyleCop 不喜欢在命名空间之外使用 using 指令,所以理想情况下,我会重构我的代码:
namespace UnitTest
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Class1
{
}
}
从我作为 Java 程序员的日子开始,我就被教导最好只导入必要的引用,而不是像这样导入整个包:
import foo.bar.MyObject;
代替
import foo.bar.*;
我知道这也可以在 C# 中完成,并具有可以为类型使用别名的附加功能(有时在使用本机代码时很有用):
using StringBuilder = System.Text.StringBuilder;
或使用别名时:
using HANDLE = System.IntPtr;
using HDC = System.IntPtr;
所以我的问题是关于使用指令的最佳实践和效率:
- 在命名空间内继续使用语句更有效,还是这纯粹是一种风格偏好?
- 与整个命名空间相比,仅包含必要的项目是否更有效?