引用传入的目的就是想要在过程中修改对象值可以传回原来的对象,你刚刚好记反了。
既然对于引用类型用ref跟不用一个样,那还显式的加个ref干嘛?不明觉厉呀
@那一年的码农:
这个比较高深一点点,你不明白可以先不明白,Just a joke.
两种情况是不同的
Sub MyProcedure(byval I as integer)
end sub
Sub MyProcedure(byref I as integer)
end sub
Sub MyProcedure(byval myObject as myClass)
myobject.name="new name"
end sub
sub MyProcedure(byref myobject as myclass)
myobject.name="new name"
end sub
你把4个过程自己测试一下看看就知道差别是什么了。
注意,重要的差别是Integer和Myclass。
你在外面随便写个测试过程,看看执行完以后I和MyOject.name是否改变。
@那一年的码农: 把你的代码稍微修改下,你就知道 ref 关键字的作用,
static AddList(List<string> list)
{
list = new List<string>();
list.Add("1");
}
static AddList(ref List<string> list)
{
list = new List<string>();
list.Add("1");
}
你记错了。我就不用解释了吧。
http://www.cnblogs.com/sujiantao/archive/2011/12/16/2289303.html