C# 比较字符串的最佳实践
可能重复:C# 比较字符串的最佳实践,c#,C#,可能重复: 我知道在c#中,可以将字符串与==和equals进行比较,但我想知道根据最佳实践,我需要使用什么。注意,我需要知道String和String是否相同,String和String在C#中是否完全相同。“最佳做法”是相同的 对于字符串,是使用=还是使用Equals,多少有些个人偏好。我个人更喜欢==,因为它可读性更强(在我看来),而且打字时间更短。string实际上是系统。string,更改由编译器为您完成=只调用String.Equals大多数.Net开发人员似乎喜欢使用关键字Str
我知道在c#中,可以将字符串与==和equals进行比较,但我想知道根据最佳实践,我需要使用什么。注意,我需要知道String和String是否相同,String和String在C#中是否完全相同。“最佳做法”是相同的
对于字符串,是使用
=
还是使用Equals
,多少有些个人偏好。我个人更喜欢==
,因为它可读性更强(在我看来),而且打字时间更短。string
实际上是系统。string
,更改由编译器为您完成=
只调用String.Equals
大多数.Net开发人员似乎喜欢使用关键字String
而不是System.String
或String
如果您没有忽略大小写,那么string1==string2
是最合适的,因为您不必像这里那样检查任何一个值是否为null:string x=null;x、 等于(“垃圾”)代码>
如果要忽略大小写(因此STRING
等于STRING
),请使用以下命令:
string.Equals (string1, string2, StringComparison.CurrentCultureIgnoreCase)
(或中的其他值之一。)String
和String
在内部是相同的
就我个人而言,我会使用=
来提高可读性。=
和.Equals
之间没有性能差异=
调用。
幕后调用。因为C#具有运算符重载和=
,=代码>过载。修改代码的人应负责检查操作员是==
还是=
在假定正在进行对象比较之前重载
注意:
如果要进行参考比较,可以执行以下操作:
if( (object)a == b )
它们是相同的。(虽然Equals有一些覆盖,但我想你不是在谈论它们)
有关最佳实践,请咨询您的同事并使用他们所使用的方法。它有助于在相同的代码库中保持一致
如果你一个人工作,选择一个你更喜欢的 根据框架指南(或有效的C#我忘了是哪一个),当您想要使用类时最好使用String,当您想要声明字符串类型时最好使用String:
string result = String.Format("You have {0} items.", items);
(虽然如果是局部变量,我会使用var result)
至于比较,我将使用String.Compare()以便您可以使用各种比较,如ignore case。和