本帖最后由 柏云杉 于 2012-4-20 16:22 编辑
首先 OUT只传出没有传入 ref才是传入并传出。- public void OutTest(out int i)//这个 i 是定义在OutTest方法里得局部变量,并未赋值。它的值是null
- {
- i = 0; // 所以在使用前需要赋初值。
- i++;
- }
复制代码- public void Test()
- {
- int j = 9;
- RefTest(ref j);
- }
- public void RefTest(ref int i) //这个 i 也是定义在RefTest方法里得局部变量
- // 并且用来接收调用这个方法时传入的变量的值,也就是上面那个变量 j 的值。
- // 如果传入的变量为null,那么 i 也是 null
- {
- i++;// 因为 i 赋值过了所以可以直接使用,无需再赋值。如果 i = null,只会报为null的异常不会报错说 i 为赋值。
- }
复制代码 |