我在过去3天一直在查看代码,原始开发人员使用 String 类而不是 string 类来定义字符串。因此,当他们使用 IsNullOrEmpty 方法时,它定义了 String.IsNullOrEmpty 。
我想知道的是,编译器处理 String.IsNullOrEmpty 与 string.IsNullOrEmpty 相比如何?
使用 String.IsNullOrEmpty 而不是 string.IsNullOrEmpty 是否有任何优势?
答案 0 :(得分:17)
他们都是一样的。
string是c#for System.String中的关键字别名。
唯一不同的是,在使用String时,您需要在代码文件的开头使用System.String.IsNullOrEmpty
或using System;
。
答案 1 :(得分:5)
String代表 System.String ,它是.NET Framework类型。 string是System.String的C#语言中的别名。它们都编译为IL (中间语言)中的 System.String,因此没有区别。选择你喜欢的并使用它。如果你用C#编写代码,我更喜欢字符串,因为它是C#类型的别名,并且是C#程序员所熟知的。
我可以对(int,System.Int32)等说同样的话。
答案 2 :(得分:4)
他们是一样的。
就个人而言,我更喜欢使用String.IsNullOrEmpty
。替代方案看起来不正确。选择Int32.Parse(...)
而不是int.Parse(...)
也是如此。当然,无论您选择何种方法,都要保持一致。
答案 3 :(得分:1)
就个人而言,如果我使用IsNullOrEmpty
或Parse
等静态方法,我更喜欢使用CTS类型。但在我阅读Lance Hunt(http://se.inf.ethz.ch/old/teaching/ss2007/251-0290-00/project/CSharpCodingStandards.pdf)的文章 .NET编码标准之后,特别注意了使用内置C#本机数据类型与.NET CTS类型,我修改了我的意见。现在我使用相应的声明类型和函数调用,如果可能的话我使用别名。
考虑一下,未来可能int
和Int32
不一样。
答案 4 :(得分:0)