c# – string.Equals(“string”)和“String”.Equals(string)有什么区别?

前端之家收集整理的这篇文章主要介绍了c# – string.Equals(“string”)和“String”.Equals(string)有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下两行代码与字符串值进行比较有什么不同.
string str = "abc";

if(str.Equals("abc"))

if("abc".Equals(str))

在第一行我调用字符串变量的equals方法来与字符串文字进行比较.第二行反之亦然.它只是编码风格的区别,或者编译器处理这两个语句的方式有所不同.

解决方法

是的,编译器处理语句的方式是不同的.大多数语言中String的函数等于相同的准则.这是一个半码:
override def Equals(that:String):Boolean //Should override Object.Equals
  if(that==null) return false
  for i from 0 to this.length
    if(!this(i).Equals(that(i))) return false
  return true

通常,该方法将检查该字符串是否为IS,并且该长度与该长度相同.

如其他人所指出的那样,如果该值为null,那么该方法返回false.另一方面,该方法是String的一部分,因此不能在null上调用.这就是为什么在你的exampleif中,str为null,你会得到一个NullReferenceException.

话虽如此,如果你知道这两个变量是非空字符串的长度相同,两个语句都将同时评估.

原文链接:https://www.f2er.com/csharp/96279.html

猜你在找的C#相关文章