比较字符串的最佳实践

本文关键字:最佳 字符串 比较 | 更新日期: 2023-09-27 17:59:45

可能重复:
是字符串。Equals()和==运算符真的一样吗?

我知道在c#中,您可以将字符串与==和equals进行比较,但我想知道根据最佳实践,我需要使用什么。注意,我需要知道字符串和字符串是否相同

比较字符串的最佳实践

Stringstring在C#中完全相同。"最佳实践"是完全相同的。

在字符串的情况下,使用==还是Equals在某种程度上是个人偏好。我个人更喜欢==,因为它(在我看来)可读性更强,打字时间更短。

大多数.Net开发人员似乎喜欢使用关键字string而不是System.StringString

如果您没有忽略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有一些重写,但我想您不是在谈论它们)。

关于最佳实践,请参考您的同事并使用他们所做的。在同一代码库中保持一致会有所帮助。

如果你一个人工作,就选一个你更喜欢的吧!

Stringstring在内部是相同的。

就我个人而言,为了可读性,我会使用==。CCD_ 20与CCD_;==在幕后调用.Equals

根据框架指南(或有效C#,我忘了是哪一个),当你想使用类时最好使用String,当你想要声明字符串类型时最好使用字符串:

string result = String.Format("You have {0} items.", items);

(尽管如果是局部变量,我会使用var结果)

至于比较,我会使用String.Compare(),这样你就可以使用各种比较,比如忽略大小写。

由于C#具有运算符重载和==!=重载,因此修改代码的人员应承担责任,在假设运算符==!=正在进行对象比较之前,应检查其是否重载。

注意:如果你想做一个参考比较,你可以做以下操作:

if( (object)a == b )