您的位置:首页 > 其它

方法参数传递对象时声明选项的注意问题

2005-08-15 10:10 525 查看
方法参数可以有以下几种选项限定

ref
out
params

params没什么好说的,String.Format方法是个典型现成的例子;
ref?好像也没什么,不就是传递引用嘛,大家应该都知道,当传递对象参数时默认是传递引用的,是不是说当参数为对象时,写不写ref都是一样的,out好像没怎么用过,呵呵:

public class A

public class B

示例1:

A clsA=new A();
clsA.num=0;
B.SetA1(clsA);
MessageBox.Show(clsA.num.ToString()); //num是0还是1???

示例2:

A clsA = null;
B.SetA2(clsA);
MessageBox.Show(clsA.num.ToString()); //is work ?呵呵,当然不,注意clsA还是null

示例3:
//要想按示例2的方式调用,ref就有用了

A clsA = null;
B.SetA3(ref clsA);
MessageBox.Show(clsA.num.ToString()); // OK!

示例4:

//按示例2的方式调用,用out也可以,区别在哪呢?
A clsA; //呵呵,编译器是不会报告“使用了未赋值的局部变量”的,不过SetA4就有相应的要求了
B.SetA4(out clsA);
MessageBox.Show(clsA.num.ToString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: