在C#中,System.Object在代码中使用而不是object,System.String而不是string或等等之间是否有区别?还是仅仅是风格问题?
System.Object
object
System.String
string
有一种理由为什么一种形式优于另一种形式?
string是的别名global::System.String。它只是语法糖。两者 正好 在几乎所有情况下可以互换的,而且会在编译的代码没有什么区别。
global::System.String
就个人而言,我将别名用于变量名等,但是我将CLR类型名用于API中的名称,例如:
public int ReadInt32() // Good, language-neutral public int ReadInt() // Bad, assumes C# meaning of "int"
(请注意,返回类型实际上不是名称,它在元数据中被编码为一种类型,因此这里没有混淆。)
我知道一个可以使用而另一个(我知道)不能使用的地方是:
nameof