欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

值类型和引用类型区别

程序员文章站 2022-05-06 11:34:55
值类型 和引用类型的介绍 直接上代码看: public class Study { public static int initNo = 100; public static void Test1(int i) { i = 1; } public static void Test1(ref int ......

 

值类型 和引用类型的介绍

 

直接上代码看:

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对象已经不是同一个了。



 


}