是否存在从不同名称空间引用类型的一般规则。你一直使用:使用指令与完整路径名称
using System.Drawing;
,而不是在需要的时候将其定义:
System.Drawing.Graphics gr;
我倾向于当我只输入完整的命名空间“呼叫”一次。有没有关于这方面的最佳做法?
是否存在从不同名称空间引用类型的一般规则。你一直使用:使用指令与完整路径名称
using System.Drawing;
,而不是在需要的时候将其定义:
System.Drawing.Graphics gr;
我倾向于当我只输入完整的命名空间“呼叫”一次。有没有关于这方面的最佳做法?
我用什么的,(我相信大多数开发人员使用),是总说
using System.Drawing;
和储备
System.Drawing.Graphics gr;
只为地方
那里是有在两个冲突Graphics
在不同的命名空间中定义,即使如此,我仍然宁愿使用using
来区分它们:
using MyGraphics=My.Own.Conflicting.Named.Graphics;
// :
var myGraph = new MyGraphics();
调用一次可以变成更进一步的行,称它为10,20或n次。我的经验法则是,C#设计团队为了某种原因将“使用”放入语言中,所以如果您原谅双关语,请使用它。
例如如果我写了下面的代码:
private System.Drawing.Drawing2D.HatchBrush GetHatchBrush()
{
System.Drawing.Color c = System.Drawing.Color.Red;
System.Drawing.Drawing2D.HatchBrush h = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.BackwardDiagonal, c);
return h;
}
只使用Color
和HatchBrush
一次,我当然更愿意阅读:
private HatchBrush GetHatchBrush()
{
Color c = Color.Red;
HatchBrush h = new HatchBrush(HatchStyle.BackwardDiagonal, c);
return h;
}
更妙的是,个人,将是:
private System.Drawing.Drawing2D.HatchBrush GetHatchBrush()
{
var c = Color.Red;
var h = new HatchBrush(HatchStyle.BackwardDiagonal, c);
return h;
}
正如詹姆斯柯伦所说,唯一的t ime我完全有资格使用它的完整名称空间,而不是使用using
将类名称带入范围时会引入歧义。
我只避免using
声明条件,使用两个不同的名称空间会引入命名冲突。
这里没有公认的最佳实践。
只是使用常识。这里唯一的目标是可读性。
当您的代码中只使用了一次或两次相对较少的类时,请使用全名。
对于大多数命名空间,尤其是经常使用的命名空间,将它们放在顶部的using指令中。
还有一些非常罕见的情况,您需要使用它来创建别名,但这个问题并没有真正的影响。
我倾向于键入完整的命名空间时 我只“调用”它一次。有没有 关于这方面的最佳做法?
一般来说,我请参阅“使用”而即使使用时只调用的东西一次,这似乎是标准的(并且也是什么ReSharper的将推动你走向,很多人往往喜欢它们的默认约定)
代码中的完全限定名称令人分心并且很吵闹。我宁愿永远不要拥有它们。如果存在名称空间冲突,则使用别名可以解决该问题。我们面对它,99.99%的C#开发人员正在使用Visual Studio,因此知道类型的名称空间和/或程序集来自F12,或者只是将鼠标悬停一秒钟。
我唯一喜欢代码中完全限定名的代码是在代码示例中,就像Stack Overflow中的代码示例一样,以清楚地说明正在使用的类型。
如果你认为模块应该为你回答这个问题好一点。
如果您滥用名称空间使用或不使用名称空间,您的问题将会发生名称冲突。
如果你有一个专用于图形表达的模块,并且该模块只能通过它的接口使用,那么你甚至不会在该模块之外访问它。在这种情况下,你将在模块内部使用Using(这么说!),所以这对理解来说是一件好事,让我们说出来,你的手指也是!
即使这样我就在其中一个名称空间上使用别名。 – 2010-08-05 14:12:42