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