阅读有关C#中的字符串比较的信息后,我发现有很多方法可以比较2个字符串以查看它们是否相等。
我习惯于使用==
c ++,但是我了解到,如果将对象与字符串进行比较,则==
默认为引用值(或类似值)。
然后对于该Equals()
方法,可以说我有2个字符串。
string s1 = null;
string s2 = "Hello";
如果我做 s1.Equals(s2);
我得到一个空引用异常,因为第一个字符串为空
但是如果我这样做
string.equals(s1,s2);
false
如果其中一个值是null
,则将简单地返回,如果两个值均是null
,则将返回,true
因为两个字符串相等,因为两个字符串都是相等的null
。
因此,有什么理由不总是使用该string.equals()
方法。还有另一件事是,如果我string.equals()
在像这样的字符串中输入大写字母S,tring.equals()
则它的运行方式与小写字母相同,但是IDE(Visual Studio 2015)将告诉我可以简化并当我简化它时,将其转换为小写字母s。这是为什么?
根据MSDN,该string.Equals
方法
确定两个String对象是否具有相同的值。
这就是为什么string.equals(s1,s2);
在您的情况下始终返回false的原因,如果s1
and和s2
均为null或具有相同的值,则返回true。
另一件事是,如果我在像这样的String.equals()的字符串中输入带有大写S的string.equals(),则它的运行方式与小写但与IDE相同(Visual Studio 2015)会告诉我它可以简化,当我简化时将其转换为小写字母s。这是为什么?
的string
是一个C#原始的,而System.String
或简单String
是相应的FCL(Framework类库)类型。它int
和和一样Int32
,其中int
C#是原语,并且Int32
是对应的FLC类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句