我应该何时使用全名,Sytem.Guid.NewGuid();
?在所有情况下,我是否应始终使用using System;
然后Guid.NewGuid();
?
答案 0 :(得分:1)
我个人不喜欢这个长标识符。如果您有很多代码,那么代码很难阅读 但是,当类型名称之间存在歧义时,完全限定版本会解决此问题。由于命名空间冲突,我个人只在必要时才使用它们。而且在这种情况下,我更喜欢宣布namespace aliase。这使代码更具可读性。
无论如何,对于已编译的应用程序,它没有区别,编译的代码是相同的。
我也遇到过,他们对某些手工重构动作不切实际,但也许相反也可能是真的,我不记得确切的情况......
答案 1 :(得分:1)
你应该使用后者,即首先包含名称空间。它的优点仅通过查看using语句,您将清楚知道该文件中使用了哪些库。
答案 2 :(得分:1)
我认为使用完全限定名称更有意义,例如Sytem.Guid.NewGuid()
如果您在某个级别的类/命名空间层次结构中有重复的名称,您希望通过明确告知全名来避免这些名称。
由于System
是非常独特的命名空间,您应该选择Guid.NewGuid()
答案 3 :(得分:1)
我认为一致性比你选择的替代方案更重要。就个人而言,我倾向于总是指定using
指令并按字母顺序排序,因此可以立即看到有什么或不存在。然后在我的代码中,我总是使用不合格的名称,除非我需要消除具有相同名称的类之间的歧义。
答案 4 :(得分:0)
我认为并没有真正有所作为。在编码时,“使用”更有用,但在编译为IL时,所有类都会编译为其全名。
答案 5 :(得分:0)
命名空间是C#的仅编译时功能,允许您在开发期间节省时间。编译器使用using指令在代码中查找速记类型名称。
基本上每次编译器遇到代码中的类型名称时,它都不知道它需要使用每个using指令并将其预先添加到类型的名称中,并查看该完全限定名称是否解析。
编译应用程序后,命名空间和using指令就会消失,因为IL不需要它们。
要回答你的问题,它确实无关紧要..如果你经常在一个文件中使用它,那么导入它,否则使用完全限定的命名空间