我可以将一个函数的引用传递给另一个函数吗
Can i pass a reference from one function to another
这里我有三个函数;将函数1的引用传递给函数2中的函数2.So,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;
}
调用站点上的 ref
关键字主要是为了确保编写调用代码的人知道他正在传递引用,以便值可以更改。
从编程语言的角度来看,这并不是绝对必要的,但从程序员的角度来看,这是个好主意。
这里我有三个函数;将函数1的引用传递给函数2中的函数2.So,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;
}
调用站点上的 ref
关键字主要是为了确保编写调用代码的人知道他正在传递引用,以便值可以更改。
从编程语言的角度来看,这并不是绝对必要的,但从程序员的角度来看,这是个好主意。