C#中的值类型和引用类型总结如下:
值类型:int , double, char, bool, decimal, struct, enum引用类型:string, 数组,自定义类, 接口, 委托
区别:值类型的值存储在内存的栈上, 引用类型的值存储在堆中。
(栈上存储数据的效率要高于堆)
值传递:把值类型作为参数传递引用传递:把引用类型作为参数传递
直接来看下面的两个案例:int number = 10;
string s = "战三";
//值传递
Test(number); //实参
Console.WriteLine(number);
//引用传递
Test2(ref number);
Console.WriteLine(number);
画出内存四区图:
275
案例二:int number = 10;
string s = "战三";
//值传递
Test(number); //实参
Console.WriteLine(number);
//引用传递
Test2(ref number);
Console.WriteLine(number);
276
案例三://实例
PersonFive p22 = new PersonFive();
p22.Name = "胡巴基";
Test3(p22);
Console.WriteLine("p22.Name is "+p22.Name);
277
通过以上三个案例和相应的内存四区图,相信大家对这两个概念应该有了更深层次的理解!
评论
填写昵称与邮箱即可评论,无需登录。