值类型和引用类型区别

匿名 (未验证) 提交于 2019-12-02 22:10:10

值类型 和引用类型的介绍

直接上代码看:

public class Study
{
public static int initNo = 100;
public static void Test1(int i)
{
i = 1;
}
public static void Test1(ref int i)
{
i = 1;
}
public static void Test2(TestModel testModel)
{
testModel.a = 10;
testModel.b = 100;
}
public static void Test3(TestModel testModel)
{
testModel = new TestModel();
testModel.a = 10;
testModel.b = 100;
}
public static void Test()
{
int i = 0;
Test1(i);
initNo = i; // 此时这里的i还是0,因为int是值类型。

Test1(ref i);
initNo = i; //此时这里的i就变成了1.

//引用类型
TestModel ts = new TestModel();
ts.a = 1;
ts.b = 2;
Test2(ts); // 此时这里的ts.a变为10,因为TestModel是引用类型,且在方法中没有重新赋值或实例化指定对象。

ts.a = 1;
ts.b = 2;
Test3(ts); // 此时这里的tc.a仍为1,因为TestModel虽然是引用类型,但在方法中已经重新实例化对象,跟Test函数里的ts对象已经不是同一个了。




}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!