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