命名空间访问器."使用"访问者

Jav*_*llo 4 .net c#

理论问题:这样做有什么区别:

using System;
...
var foo = new String("foo");
Run Code Online (Sandbox Code Playgroud)

还有这个:

var foo = new System.String("foo");
Run Code Online (Sandbox Code Playgroud)

DLL加载?性能差异?

主要是,我怀疑在这种情况下最好的代码实践是什么?

Jon*_*eet 9

不,他们将被编译为完全相同的IL.

using指令(没有诸如"命名空间访问器"之类的术语)只是告诉C#编译器在尝试将简单名称解析为完全限定名称时它应该在该命名空间中查找的一种方式.

(当然两者都无法编译,因为String(String).NET中没有构造函数,但这是另一回事.)

请注意,使用内置别名string与使用System.String类型相同- 它实际上只是一个别名.例如:

// Just one type!
string x = new String(new char[10]);
Run Code Online (Sandbox Code Playgroud)


Dia*_*cus 5

一样.使用你喜欢的任何一个.我使用using,并在发生名称冲突时回退到全名.