在C++中,我们解决这个问题的方法是,让正在调用的方法传递变量的指针(即引用),这样方法就可以操作调用代码的数据.c#中的解决方案与此类似.实际上,c#提供了两个解决方案.第一种涉及ref关键字.这个关键字告诉c#编译器,正被传递的参数指乡与正被调用代码中的变量相同的内存位置.这样,如果被调用的方法修改了值并且返回,调用代码的变量就被修改了.
ref关键字与out关键字的主要区别是,out关键字不要求调用代码先对传递的参数进行初始化.什么时候应该使用ref关键字呢?当需要保证调用方法已经对参数进行初始化时应该使用ref关键字.