ref 关键字用在四种不同的上下文中;
1.在方法签名和方法调用中,按引用将参数传递给方法。
2.在方法签名中,按引用将值返回给调用方。
3.在成员正文中,指示引用返回值是否作为调用方欲修改的引用被存储在本地,或在一般情况下,局部变量按引用访问另一个值。
4.在 struct 声明中声明 ref struct 或 readonly ref struct。
先看按引用传递参数;
在方法的参数列表中使用 ref 关键字时,它指示参数按引用传递,而非按值传递。
不要混淆通过引用传递的概念与引用类型的概念。
当通过引用传递时,不会对值类型装箱。
若要使用 ref 参数,方法定义和调用方法均必须显式使用 ref 关键字;
namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){int number = 7;add44(ref number);textBox1.Text = number.ToString();}void add44(ref int a){a = a + 44;}}
}
传递到 ref 或 in 形参的实参必须先经过初始化,然后才能传递;
这与 out 形参不同,在传递之前,不需要显式初始化该形参的实参;