据我所知,类的任何静态成员都可以从相关的原始数据类型访问String或访问。Int32所以,String.Format与 相同string.Format,与Int32.MaxValue相同int.MaxValue。
这两种形式有区别吗?一个比另一个更受欢迎吗?即使它们是相同的,通常被认为更具可读性吗?
编辑:既然它们是相同的,从人类的角度来看是首选吗?您更愿意看String.Format还是string.Format在阅读别人的代码时?
没有区别,这些是 C# 中用于 .Net 框架类型的类型别名,您在下面调用相同的方法。
例如:
int是一个别名System.Int32string是一个别名System.String这些不是相关的原始数据类型。它们只是 C# 中可用的简写。string别名System.String和int别名System.Int32。调用int.MaxValue 是调用Int32.MaxValue。C# 只允许您以类似于使用另一种类 C 语言时所键入的简写形式键入它。
大多数答案都有一般性。但是,在某些情况下需要别名。在我的头顶上:
public enum MyEnum:Byte {...} //will not compile
public enum MyEnum:byte {...} //correct
在其他几个地方您必须使用别名;除此之外,它主要是风格。以下两条规则被普遍接受,也许第一条多于第二条:
它们是相同的。string和分别是和int的语法别名。StringInt32
string 不是原始类型,而只是 String 的别名。他们是一样的东西。
请注意,如果您进入 IDE 并将鼠标悬停在 上string,您将看到它是由 System.String 定义的
这是一个“别名”……一件事是另一件事的简写。int 是 Int32 的别名,byte 是 Byte 的别名,char 是 Char 的别名,依此类推。
IDE 本身就是它们可互换性的一个有趣证明。
开始输入List<String> list = new然后查看 IntelliSense 的建议:List<string>. 它甚至不会给你List<String>作为选择之一。
为了回答您问题的第二部分,这是一个意见问题,出于多种原因,我更喜欢int大写string:
int本质上非常简单,我不想强迫我的眼睛将其与名称中包含一个大写字母和两个数字(即Int32)联系起来;没有明显的原因,它看起来太具体了 我的一位同事说专门使用Int32并String确保与未来的 .NET 更新兼容;我完全不同意那个说的人。请证明我错了!
String.Format() 需要“使用系统;” 但 string.Format() 没有。