碰到一段程序,如下 public aaa(byval AAA as dataset) { ...... } 调用的地方: BBB as new dataset call aaa(BBB) 问题: 虽然aaa函数的参数是byval的,但是最后改变的是BBB的dataset。 请高手解释一下这个现象,或者给微软的链接。
[Quote=引用 13 楼 vwxyzh 的回复:]
ByVal和ByRef的区别在于:
'这个方法不会把new出来的dataset返回给调用方
public sub aaa(byval AAA as dataset)
{
AAA=new dataset
}
'这个方法会把new出来的dataset返回给调用方
public sub aaa(byref AAA as dataset)
{
AAA=new dataset
}
[/Quote]
我记得还有一个区别,就是一个无法被销毁,一个可以被销毁。
ByVal和ByRef的区别在于:
'这个方法不会把new出来的dataset返回给调用方
public sub aaa(byval AAA as dataset)
{
AAA=new dataset
}
'这个方法会把new出来的dataset返回给调用方
public sub aaa(byref AAA as dataset)
{
AAA=new dataset
}