//debug
byte[] a1 = new byte[] { 12, 13 };
byte[] a2 = new byte[] { 12, 13 };
if (arrayCrcInSeem.Equals(a1))
{
  // A
  Debug.WriteLine("Equal\n");
}
else
{
  //B
}可是代码总是跑到B处,不知道为什么, 我定义的两个数组可以完全一样的啊.

解决方案 »

  1.   

    //debug
    byte[] a1 = new byte[] { 12, 13 };
    byte[] a2 = new byte[] { 12, 13 };
    if (a1.Equals(a2))
    {
      // A
      Debug.WriteLine("Equal\n");
    }
    else
    {
      //B
      

  2.   

    数组  a1 和 a2 的 Equals 是调用 object.Equals,它仅仅是一般化的。
    也就是说,没有实现 数组的 Equals 的方法。返回 false 也就不奇怪了。
    自己写一个比较方法吧。
      

  3.   

    你想比较什么啊
    要是比较他们是不是一个对象,是不是一个引用,可以使用equal
    要是想比较里面的内容的话,你要重写equal
    或者自己写一个方法
      

  4.   

    对于引用对象,equal 默认操作是比较引用