私の友人は、String.csの2つのメソッドの興味深いソースコードに出くわしました。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator ==(string a, string b)
{
return Equals(a, b);
}
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool Equals(string a, string b)
{
return ((a == b) || (((a != null) && (b != null)) && EqualsHelper(a, b)));
}
なぜ無限ループにならないのですか?(そして、すべてのプログラムはStackOverflowExceptionによって終了します!)