我可以将引用从一个函数传递到另一个函数

时间:2015-09-17 09:18:48

标签: c# .net reference pass-by-reference

这里我有三个功能;将函数1的引用传递给函数2.因此,在函数2中,a是引用。那为什么不允许它将相同的引用传递给函数3?不使用关键字ref

功能1:

public void funReadA()
 {
    double a=10;
    //read value for a
    funReadB(ref a);
 }

功能2:

 public void funReadB(ref double a)
   {
    double b = 25;
    a = 11;    
    // sum(a, b);this method call is not allowed
    sum(ref a, b);// why ref a is required? a is already a reference na?
   }

功能3:

public double sum(ref double a,double b)
   {
       return a += b;
   }

1 个答案:

答案 0 :(得分:2)

调用网站上的ref关键字主要是为了确保编写调用代码的人知道他正在传递引用,并且值可能会发生变化。

编程语言的角度来看,它并非绝对必要,但从程序员的角度来看,这是一个好主意。