String.IsNullOrEmpty 或 string.IsNullOrEmpty [重复]

问题描述 投票:0回答:5

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

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

使用 String.IsNullOrEmpty 比使用 string.IsNullOrEmpty 有什么优势吗?

c# .net string
5个回答
27
投票

它们都是一样的。

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

唯一的区别是,使用 String 时,您需要在代码文件的开头使用

System.String.IsNullOrEmpty
using System;


6
投票

String 代表 System.String,它是 .NET Framework 类型。 string 是 C# 语言中 System.String 的别名。它们都在IL(中间语言)中编译为System.String,因此没有区别。选择你喜欢的并使用它。如果您使用 C# 进行编码,我更喜欢 string,因为它是 C# 类型别名,并且为 C# 程序员所熟知。

我可以对 (int, System.Int32) 等说同样的话..


4
投票

它们是一样的。

就个人而言,我更喜欢使用

String.IsNullOrEmpty
。另一种选择看起来并不正确。选择
Int32.Parse(...)
而不是
int.Parse(...)
也是如此。当然,无论您选择哪种方法,都要保持一致。


3
投票

就个人而言,如果我使用像

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
不一样了。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.