据我所知,类的任何静态成员都可以从相关的原始数据类型访问String
或访问。Int32
所以,String.Format
与 相同string.Format
,与Int32.MaxValue
相同int.MaxValue
。
这两种形式有区别吗?一个比另一个更受欢迎吗?即使它们是相同的,通常被认为更具可读性吗?
编辑:既然它们是相同的,从人类的角度来看是首选吗?您更愿意看String.Format
还是string.Format
在阅读别人的代码时?
没有区别,这些是 C# 中用于 .Net 框架类型的类型别名,您在下面调用相同的方法。
例如:
int
是一个别名System.Int32
string
是一个别名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
的语法别名。String
Int32
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() 没有。