你喜欢用传址方式的子程序,还是喜欢用函数?
vb.net吧
全部回复
仅看楼主
level 6
hxr225976 楼主
子程序没有返回值,但是我发现通过传址方式就行调用,实质和函数就没区别了,这两种方式,你喜欢用哪一种?
2013年11月13日 04点11分 1
level 3
分情况选择把,复杂的函数都用
按地址传递往往用于下列情况:
1.要对对象进行处理
2.要引用对象的子对象、属性和函数
而函数通常用于下列情况:
1.立即需要判断返回值,例如,DialogResult = ShowDialog(Dialog1)
2.是表达式的组成部分时,用函数比较好,例如 a = b+ c * Func1(d)
需要返回多个值时,可返回结构或类
Function A() As Result
Dim tResult As Result
tResult.Value1 = 1
tResult.Value2 = 2
Return tResult
End Function
2013年11月13日 06点11分 2
level 5
个人认为传址方式应谨慎使用,因为缺乏安全性,如变量容易在其它地方被修改。
其实本质上无论过程传址,还是函数返回值,都是传址操作,但后者进行了系列包装,以使结果更安全。
2013年11月13日 09点11分 3
这让我想起了全局变量。。。
2013年11月13日 10点11分
回复 kingstr:其实传址的子过程不仅有上述缺点,而且增加了代码难度,也不利于维护。需要返回值的时,我都是用的函数,没有用过传址的子过程。 :
2013年11月13日 10点11分
是啊
2013年11月13日 14点11分
level 13
用函数吧
2013年11月13日 13点11分 5
level 10
我一般只在事件或委托中使用传址,一般的函数不要轻易使用
另外,所有以类型"Class"为参数的函数,都是传址引用的,只有结构、枚举这些数据类型才是传值引用
2013年11月14日 06点11分 6
level 8
很简单 需要输出多个值的函数就用传址啦
2013年11月15日 05点11分 7
也可以用数组来传值的
2013年11月15日 05点11分
你说的是ArrayList或者Collection吗?
2013年11月15日 05点11分
回复 jimmyfluore :用delphi的array作过
2013年11月15日 05点11分
1