这让我把头发拉了几天:
byte[] _A = new byte[64];
// Fill _A with some meaningful, valid data.
byte[] _B = new byte[_A.Length];
_A.CopyTo( _B, 0 );
if( !_A.Equals( _B ) ) {
throw new WtfException(
"It appears object.Equals doesn't work on arrays of value types...");
}
Run Code Online (Sandbox Code Playgroud)
是的,抛出了WtfException.我花了几天时间才注意到.byte是一个ValueType.但是,byte[]是System.Array一个参考类型.根据.NET文档:
Equals的默认实现支持引用类型的引用相等,以及值类型的按位相等.引用相等意味着被比较的对象引用引用相同的对象.按位相等意味着被比较的对象具有相同的二进制表示.
有人可以帮忙吗?
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |