日期:2014-05-18 浏览次数:20930 次
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
User u1 = new User() { ID = 1, Name = "A" };
User u2 = new User() { ID = 2, Name = "B" };
Console.WriteLine(object.ReferenceEquals(u1, u2));
Console.WriteLine(u1 == u2);
Console.WriteLine(object.Equals(u1, u2));
Console.WriteLine(u1.Equals(u2));
}
}
class User
{
public int ID { get; set; }
public string Name { get; set; }
public override bool Equals(object obj)
{
return true;
}
}
}
------解决方案--------------------
装箱和拆箱的本质并不是把值类型变成引用类型.
而是用一个引用类型的对象把值类型包装一下,真正到了使用的地方还是要拆箱的.
就是说,两个箱子,里面是一样的东西.你使用的时候是用的里面的东西,根本不会感觉到箱子的存在.但确实是两个箱子.