String.IsNullOrEmpty或string.IsNullOrEmpty

时间:2010-03-09 10:52:03

标签: c# .net compiler-construction

我在过去3天一直在查看代码,原始开发人员使用 String 类而不是 string 类来定义字符串。因此,当他们使用 IsNullOrEmpty 方法时,它定义了 String.IsNullOrEmpty

我想知道的是,编译器处理 String.IsNullOrEmpty string.IsNullOrEmpty 相比如何?

使用 String.IsNullOrEmpty 而不是 string.IsNullOrEmpty 是否有任何优势?

5 个答案:

答案 0 :(得分:17)

他们都是一样的。

string是c#for System.String中的关键字别名。

唯一不同的是,在使用String时,您需要在代码文件的开头使用System.String.IsNullOrEmptyusing 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)

就个人而言,如果我使用IsNullOrEmptyParse等静态方法,我更喜欢使用CTS类型。但在我阅读Lance Hunt(http://se.inf.ethz.ch/old/teaching/ss2007/251-0290-00/project/CSharpCodingStandards.pdf)的文章 .NET编码标准之后,特别注意了使用内置C#本机数据类型与.NET CTS类型,我修改了我的意见。现在我使用相应的声明类型和函数调用,如果可能的话我使用别名。 考虑一下,未来可能intInt32不一样。

答案 4 :(得分:0)

由于 VS2019 建议使用结构体而不是类来简化,因此我会遵循其建议,即使您的整体解决方案必须保持一致。 Simplification suggestion