总结C#中ref和out的区别
发布日期:2015-10-15 16:10:3
总结C#中ref和out的区别 C#中ref和out两者在使用时有一定的相同之处,不过也有不同点。 首先,ref和out的本质上的一点不同就是: ref是传递参数的地址,而out是返回值。其次,在使用ref前必须对变量赋值,out在使用时就不用。 还有就是out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,但是ref引用的可以选择修改,也可以选择不修改。 具体的使用区别可以从下面的代码明显看到: using System; class TestApp { static void outTest(out int x, out int y) {//离开这个函数前,必须对x和y赋值,否则会报错。 //y = x; //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行 x = 1; y = 2; } static void refTest(ref int x, ref int y) { x = 1; y = x; } public static void Main() { //out test int a,b; outTest(out a, out b); Console.WriteLine("a={0};b={1}",a,b); int c=11,d=22; outTest(out c, out d); Console.WriteLine("c={0};d={1}",c,d); //ref test int m,n; //refTest(ref m, ref n); int o=11,p=22; refTest(ref o, ref p); Console.WriteLine("o={0};p={1}",o,p); } } 上一条: .NET数据库(MYSQL)操作 下一条: 无下一篇
|