关键字out,关键字ref

原创 2006年06月06日 10:21:00

 

 
class RefExample
{
    static void Method(ref int i)
    {
        i = 44;
    }
    static void Main()
    {
        int val = 0;
        Method(ref val);
        // val is now 44
    }
}
 
class OutExample
{
    static void Method(out int i)
    {
        i = 44;
    }
    static void Main()
    {
        int value;
        Method(out value);
        // value is now 44
    }
}
 
 
 
一看就明白,out和ref都是引用传值,不同之处就是使用ref传变量的时候,这个变量必须是经过初始化的
而out就没有这个限制!  但是out还是有一个限制的,就是在传递之前不需要付值,但传递给方法之后,该
方法必须要给改变量付值。
 
 
 
下面引用msdn的一句话:
ref 和 out 关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 
参数,而另一个方法采用 out 参数,则无法重载这两个方法。例如,从编译的角度来看,以下代码中的两个
方法是完全相同的,因此将不会编译以下代码:
class CS0663_Example 
{
    // compiler error CS0663: "cannot define overloaded 
    // methods that differ only on ref and out"
    public void SampleMethod(out int i) {  }
    public void SampleMethod(ref int i) {  }
}

c#中的关键字out是什么意思?ref是什么意思?它们有什么区别?

不知大家有没有遇到过需要一个函数返回多个值的情况。 当写代码要返回多个值的时候,当然可以返回一个数组来实现,但如果遇到需要返回的多个值的类型不同呢?这个时候怎么办? c#中,out关键字和ref关...
  • sinat_23079759
  • sinat_23079759
  • 2016年10月22日 22:14
  • 2245

C# out、ref关键字的用法和区别

说说自己对out、ref的认识,面试问到的几率很高哟。 out: class Program { /* * out、ref都是引用传递,传递后使用...
  • CommandBaby
  • CommandBaby
  • 2016年04月06日 14:53
  • 3847

C# ref 和 out ,params关键字的用法

C# ref,out,params 的用法。
  • mydad353193052
  • mydad353193052
  • 2015年08月29日 22:25
  • 805

C#关键字params, ref, out的用法

第一次使用params这个关键字,发觉这是蛮好用的一种参数形式。 1、params params关键字用在指定参数可变的场合中。在方法声明中加了params关键字后不能再同时定义其他参数,在声明方...
  • moxiaomomo
  • moxiaomomo
  • 2012年09月09日 22:33
  • 2582

C# ref和out关键字

ref和out关键字初解    参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变,所作的修改会影响原来的变量的值;在C#中,除非特别说明,所有的参数都是值传递。这是...
  • 21aspnet
  • 21aspnet
  • 2007年03月24日 13:40
  • 1939

C#方法参数传递-同时使用ref和out关键字

在方法参数传递中,可以同时使用ref和out关键字,但是要注意ref和out参数传递的不同。using System;class Program{static void Main(){    Prog...
  • david_520042
  • david_520042
  • 2010年11月22日 15:08
  • 938

C#中in,out,ref的作用和区别

ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键...
  • jadeflute
  • jadeflute
  • 2010年01月20日 22:13
  • 23277

C++11 ref函数的使用

说到ref() 函数,就必须先提ref() 函数的返回值 reference_wrapper 类类型,reference_wrapper 是个类模板,用来模仿一个类型为T 的对象的引用,使用起来就像是...
  • zhouguoqionghai
  • zhouguoqionghai
  • 2015年05月17日 18:49
  • 2709

c# 深度解析方法参数的关键字ref

昨天在垒代码的时候遇到了一个基础没打牢就会暴露的问题。传递给方法的参数为类(class)时,在方法中所做的修改赋值不一定会最终改变到原始的变量上。 举一个例子,如果一个方法Action(List...
  • CNHK1225
  • CNHK1225
  • 2016年11月08日 18:02
  • 362

out关键字的用法

out 上下文关键字可在下面两种上下文中使用:      1、作为参数列表中的参数修饰符   2、在接口和委托的泛型类型参数声明中                 1、 out ...
  • gksrxn
  • gksrxn
  • 2013年09月06日 09:09
  • 1559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关键字out,关键字ref
举报原因:
原因补充:

(最多只允许输入30个字)