我给补充个相等的情况- class A
- {
- }
- class Program
- {
- static void Main(string[] args)
- {
- A i=new A();
- A j = i;
- if (Object.ReferenceEquals(i,j))
- Console.WriteLine("Equal");
- else
- Console.WriteLine("Not Equal");
- Console.ReadKey();
- }
- }
复制代码 因为这时的i和j都是类了,属于引用类型,而A j=i就把j中的引用也指向了i在堆中的对象,换句话说也就是存放在栈中的变量i和j都指向了堆中的同一个对象实例。所以此时Object.ReferenceEquals(i,j)的返回值为true了。 |