2010-09-03 50 views
3

编辑错别字c#使用声明 - 更多=好或坏?

嗨,

这可能是一个鲁钝的问题,但如果它可以帮助我遵循最佳做法我不在乎:P

说我想用类&方法在System.Data命名空间内......还有System.Data.SqlClient命名空间。

是更好地拉双方发挥作用,或只是母公司,即...

using System.Data 
using System.Data.SqlClient 

或只是......

using System.Data 

更重要的是我想,它有什么影响(或者只是一个偏好问题)(声明父代和子代都使代码的其余部分保持整洁,但是这会损害应用程序的速度,因为它牵扯到整个父命名空间,然后是孩子?)

希望这不是太多华夫饼干

+0

'using'在C语言中的行为不像'#include',其中包含不必要或重复的头文件会引起明显的编译性能问题(尽管大多数头文件会专门包含'guard' )在C#中,'using'纯粹是一种帮助IDE和编译器解析类型名称的方法。 – 2010-09-03 13:52:20

回答

9

它不会使任何区别于已编译的代码。

我个人喜欢只有那些我正在使用的(不是双关语意图的),但如果你想有100个,它可能会减慢编译器的smidge,但它不会改变编译的代码(当然,假设没有命名冲突)。

这只是一个编译时的方式,当你谈论X.Y.Z时,可以让你编写Z ...编译器可以确定你的意思,然后它就是相同的。

如果您打算使用来自两个不同命名空间的类型(并且层次结构在这里很大程度上是虚幻的),那么我将亲自指定两个using指令。

+0

谢谢,是的,似乎大部分信息仅针对Intellisense,如果有任何东西放缓 – isNaN1247 2010-09-03 12:24:08

+0

@beardwizzle和充斥着东西。我不介意是否需要一点时间,就好像我需要知道我已经在想这件事,但是好主人那里有一大堆课程。 VS和Resharper都可以帮助你保持干净(有一个附加组件,它可以让你在除了resharper之外的情况下移除和排序使用,所以它不仅仅是当你拥有它的时候) – Rangoric 2010-09-03 13:47:27

8

点击Organize->Remove Usings和Visual Studio会告诉你正确的答案。

+0

这似乎已在VS 2012下发生了变化 - http://msdn.microsoft.com/zh-cn/library/bb514115。为我工作的方法是在代码编辑器中右键单击任意位置,指向组织使用,然后单击删除未使用的Usings._ – 2012-09-02 14:43:37

2

首先,它对应用程序没有影响。您可以通过查看编译器生成的CIL代码来证明这一点。所有类型都在CIL中用完整的规范名称声明。

导入命名空间只是语法糖,可以帮助您编写较短的代码。在某些情况下,也许在那里你有一个非常大的代码文件,并且只能从一个特定的命名空间一次引用一个类型,你可以选择而不是来导入命名空间,而是使用完全限定的名字,该类型来自何处的开发人员。尽管如此,它没有任何区别。

2

表达您的意思,旨在获得简洁明了的代码 - 这就是关键所在。这对应用程序没有任何影响,只有你,你的同事和你未来的工作人员的大脑。

1

使用无论发生什么事情时写入您的类型名称,并在VS中按Ctrl + .Enter