The mono question is easy to answer by looking at their sources. The .NET question is easy to answer by using Reflector/ILSpy/or similar. I won't answer the .NET question here b/c I don't want to cause any IP issues with posting .NET internal information on a mono site.

On 05/21/2013 06:25 PM, Edward Ned Harvey (mono) wrote:
Msdn says string.Equals() overrides the string == operator.

Msdn also says it's an ordinal comparison, blah blah.

The thing I'd like to know:  Ordinal string comparison tends to be an
expensive thing to do.  This can be skipped under certain circumstances,
such as, if ReferenceEquals returns true, or if the two string length's
are different.

Can anybody authoritatively say, under the hood, that .Net or mono
actually do this sort of acceleration in the string.Equals() method?

public static bool operator ==( string a, string b)

{

                 if ( Object.ReferenceEquals(a,b) )

                                 return true;

                 else

                 {

                                 if ( a.Length != b.Length )

                                                 return false;

                                 else

                                 {

                                                 for ( int i=0;
i<a.Length ; i++ )

                                                                 if (
a[i] != b[i] )

                                                                                
 return false;

                                                 return true;

                                 }

                 }

}



_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to