比较字符串的最佳实践
本文关键字:最佳 字符串 比较 | 更新日期: 2023-09-27 17:59:45
可能重复:
是字符串。Equals()和==运算符真的一样吗?
我知道在c#中,您可以将字符串与==和equals进行比较,但我想知道根据最佳实践,我需要使用什么。注意,我需要知道字符串和字符串是否相同
String
和string
在C#中完全相同。"最佳实践"是完全相同的。
在字符串的情况下,使用==
还是Equals
在某种程度上是个人偏好。我个人更喜欢==
,因为它(在我看来)可读性更强,打字时间更短。
大多数.Net开发人员似乎喜欢使用关键字string
而不是System.String
或String
。
如果您没有忽略case,那么string1 == string2
是最合适的,因为您不必像在这里那样检查任何一个值是否为null:string x = null;x.Equals("junk");
。
如果您想忽略该情况(因此STRING
等于string
),请使用以下命令:
string.Equals (string1, string2, StringComparison.CurrentCultureIgnoreCase)
(或StringComparison中的其他值之一。)
string
实际上是System.String
,更改是由编译器为您完成的。==
只是调用String.Equals
。
它们完全相同。(虽然Equals有一些重写,但我想您不是在谈论它们)。
关于最佳实践,请参考您的同事并使用他们所做的。在同一代码库中保持一致会有所帮助。
如果你一个人工作,就选一个你更喜欢的吧!
String
和string
在内部是相同的。
就我个人而言,为了可读性,我会使用==
。CCD_ 20与CCD_;==
在幕后调用.Equals
。
根据框架指南(或有效C#,我忘了是哪一个),当你想使用类时最好使用String,当你想要声明字符串类型时最好使用字符串:
string result = String.Format("You have {0} items.", items);
(尽管如果是局部变量,我会使用var结果)
至于比较,我会使用String.Compare(),这样你就可以使用各种比较,比如忽略大小写。
由于C#具有运算符重载和==
、!=
重载,因此修改代码的人员应承担责任,在假设运算符==
或!=
正在进行对象比较之前,应检查其是否重载。
注意:如果你想做一个参考比较,你可以做以下操作:
if( (object)a == b )