我最近停止使用using-statement,而是使用我调用的任何.net对象的完整命名空间路径。
示例:
using System;
namespace QuizViewer
{
class Class1
{
Console.WriteLine("Hello World!");
}
}
这就是我现在所做的。
namespace QuizViewer
{
class Class1
{
System.Console.WriteLine("Hello World!");
}
}
在你问为什么我这样做之前,我正在使用这种风格,以便我可以准确地看到我的对象来自哪里,并且在使用不同的Timer对象和其他具有相似名称的对象时更容易。
这种编程方式是否有任何性能提升或降低?
答案 0 :(得分:34)
性能差异为零,因为编译器总是输入全名 - 使用只是编译器的提示,运行时不知道或不支持。
然而,一旦你记住物体来自哪里,你会认为这是愚蠢和冗长的。噪音很大,人们只知道Path来自System.IO,Console在System中,而StringBuilder在System.Text中。
您的方法的一个缺点:不使用,当前命名空间之外没有扩展方法。尽情享受System.Linq.Enumerable.Where(inputSequence,...)
而不仅仅是inputSequence.Where(...)
的乐趣:)
答案 1 :(得分:5)
简短回答否:它与编译的代码相同。
答案 2 :(得分:5)
我认为这种风格导致程序员性能下降:)。我使用using语句,通常从代码中可以清楚地知道类所属的命名空间。如果没有,请按F12 只是我的2c。
答案 3 :(得分:5)
唯一的性能打击,就是用来打输它的所有打击,以及与你或其他人一起阅读它。
使用语句有助于提高可读性,而不是性能。
答案 4 :(得分:4)
没有性能影响;它主要是一种风格选择。我发现使用using
语句可以减少混乱。另外,使用Intellisense,可以很容易地看到完全限定的命名空间。
答案 5 :(得分:0)
如果您反汇编这两段代码并查看IL代码,您会发现编译器总是通过它的全名引用所有类型。这与操作类型完全相同。