首页 新闻 搜索 专区 学院

说说 ref 和 out的相同点儿 ,注意是相同点儿

0
悬赏园豆:5 [已解决问题] 解决于 2010-10-27 22:33

我从网上看到    out 可以输出 不同类型 ? 可以给个例子嘛?

先说说相似点儿吧

程海的主页 程海 | 初学一级 | 园豆:11
提问于:2010-10-17 09:52
< >
分享
最佳答案
0

用这两个修饰符修饰的参数,在函数内部对其进行修改会影响到外面的使用。普通参数不会。

public static void f0(int a)
        {
            a = 4;
        }
        public static void f1(out int a)
        {
            a = 5;
        }
        public static void f2(ref int a)
        {
            a = 6;
        }
        static void Main(string[] args)
        {
            int a = 3;
            Program.f0(a);
            Console.WriteLine(a);
            Program.f1(out a);
            Console.WriteLine(a);
            Program.f2(ref a);
            Console.WriteLine(a);
            Console.ReadKey();
        }

输出的值分别是3,5,6 .

收获园豆:5
aguiagui | 菜鸟二级 |园豆:305 | 2010-10-21 14:01
其他回答(5)
0

都能像指针一样往回带数据

一滴血 | 园豆:1602 (小虾三级) | 2010-10-17 10:29
0

相同点就是都是按地址传递,在方法中改变值后都会影响到调用方

yixin841210 | 园豆:1138 (小虾三级) | 2010-10-17 12:31
0

声明变量 A :

那么 传递的都是 A 本身的地址;而不是 A 保存的值的地址(当变量 A 是引用类型时)。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-10-17 15:27
0

都是函数需要多个返回值的时候才运用的,两者在编译的时候原理是一样的

dodohua | 园豆:1037 (小虾三级) | 2010-10-18 14:47
0

翻译成IL后是一样的,也就说,本质是一样的

钧梓昊逑 | 园豆:945 (小虾三级) | 2010-10-27 18:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册