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