关于值类型和引用类型

场景1:

int num=10;
object o1=num;
object o2=num;
Console.WriteLine(o1==o2);

  

场景2:

string str="This is a Test";
object o1=str;
object o2=str;
Console.WriteLine(o1==o2);

  

场景1输出的是 False;而场景2输出的是True;

原因是

场景1 num是值类型:CLR会在赋值的时候,把数值复制到对象内。而两个对象是不一样的;

场景2 str是引用类型:CLR只会在对象内存放 str的内存地址。两个对象所指向的是一致的。

原文地址:https://www.cnblogs.com/since87/p/3330892.html