一.装箱和拆箱
将值类型转换为引用类型的过程称为装箱,反之称为拆箱
实际开发尽量避免 装/拆 箱
原因:
装/拆 箱都会降低程序性能
示例代码:
static void Main(string[] args) { ; object obj = num; //有装箱操作 int result = (int)obj; //拆箱操作 //要想拆箱,先有装箱。 }
二.不同类型的参数传递
1.值方式参数传递
1)使用值类型作为参数
以值类型作为参数进行值方式传递参数时,不能改变值类型参数的值
; ; Console.WriteLine("交换前:num1的值{0}\tnum2的值{1}", num1, num2); //最简单的两个变量交换 //借助第三方 Change(num1, num2); Console.WriteLine("交换后:num1的值{0}\tnum2的值{1}", num1, num2); static void Change( int num1, int num2) { int temp = num1; num1 = num2; num2 = temp; }
2)使用引用类型作为参数
以引用类型作为参数进行值方式传递参数时,能改变引用类型参数的值
static void Main(string[] args) { Voter voter = new Voter(); SE se = new SE(); se.popularity = ; voter.Vote(se); voter.Vote(se); Console.WriteLine(se.popularity); } public void Vote(SE se) { se.popularity++; } public class SE { public int popularity; }
2.引用方式参数传递(ref)
1.使用引用类型作为参数
以值类型作为参数进行引用方式传递参数时,能改变值类型参数的值
; ; Console.WriteLine("交换前:num1的值{0}\tnum2的值{1}", num1, num2); //最简单的两个变量交换 //借助第三方 Changeref num1,ref num2); Console.WriteLine("交换后:num1的值{0}\tnum2的值{1}", num1, num2); static void Change(ref int num1,ref int num2) { int temp = num1; num1 = num2; num2 = temp; }
2.使用引用类型作为参数
以值引用型作为参数进行引用方式传递参数时,能改变引用类型参数的值
static void Main(string[] args) { Voter voter = new Voter(); SE se = new SE(); se.popularity = ; voter.Vote(ref se); voter.Vote(ref se); Console.WriteLine(se.popularity); } public void Vote(ref SE se) { se.popularity++; } public class SE { public int popularity; }