==对应引用对象来说,就是看是不是一个地址,而不是比较内容.如果要比较内容,重载== 和object.Equals .

解决方案 »

  1.   

    我来从C#这种语言谈起首席,我要说明的一点是,C#中只有两种类型,一种是值类型:包括基本数据类型(如:int float 等等),结构(struct)引用类型:包括,类和数组下面,我将要说明,它们之间的区别,值类型传递的是值如: int i=6
        int j=i;
       i++;
     Console.Writeline("{0},{1}",i,j);  output:
          7  6由此可见值传递对变量的影像是,当吧一个变量的值传递给另一个改变任何一个变量对其他都没影响.下面我们来讨论引用类型int[]myarray={10,20,30,40,50,60};
    int[]yourarray=myarray
    if(myarray==yourarray)           ----> trueint[]myarray={10,20,30,40,50,60};
    int[]yourarray={10,20,30,40,50,60};
    if(myarray==yourarray)           ----> false   why就以你的例子,为例,为什么?原因很简单,因为它引用的是一个地址值.第一次比较他们的地址相同,而第二次实际上是Array的构造器,已经为他们分配了不同的地址空间.所以地址值是不一样的,当然为false.(完)呵呵...感觉象在出书.
      

  2.   

    另:还有点要说明,那就是在C#的unsafe中,是可以支持另一种在C#中不推荐使用的类型,那就是指针类型.关于指针建议参考C/C++的相关文档资.