这两个比较法的差异是什么?
var result = EqualityComparer<T>.Default.Equals(@this, null);
var result = @this == null;
Run Code Online (Sandbox Code Playgroud)
显然,目的是测试对象'@this'是否为空.
那取决于它的类型@this.如果它没有重载==,第二行将只执行直接引用比较,而第一行将调用重写 Equals方法或实现IEquatable.Equals.
任何明智的实施都会给两个比较带来相同的结果.