加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 在同一例程中传递ByRef和ByVal参数的不良做法?

发布时间:2020-12-17 07:18:06 所属栏目:百科 来源:网络整理
导读:用下面的getFile函数中使用的ByVal和ByRef参数编写函数是不是被认为是不好的做法(VB.NET或任何语言)? Function getFile(ByVal channel As Integer,_ ByRef Filename As String,_ ByRef Filesize As String) As Integer...End Function...Dim status As Inte
用下面的getFile函数中使用的ByVal和ByRef参数编写函数是不是被认为是不好的做法(VB.NET或任何语言)?

Function getFile(ByVal channel As Integer,_
                 ByRef Filename As String,_
                 ByRef Filesize As String) As Integer
...
End Function

...
Dim status As Integer
Dim filename As String
Dim filesize As Integer

For channel In 1 To 16
   status = getFile(channel,filename,filesize) 
   ...
Next channel

解决方法

我通常会尽量避免将ByRef放在一起,但它往往会变得丑陋和令人困惑.
你混合ByVal和ByRef这一事实并不仅仅影响可读性,而是仅仅拥有所有的ByRef恕我直言.

例如,如果我只需要文件名,我仍然需要传入一个filesize变量,我认为这有点丑陋.在阅读代码时,很容易错过参数可能会被更改.

正如Assaf在他的评论中所说的那样,我通常会尝试通过让方法返回某种可以包含所有返回数据的结构来解决整个问题.如果失败,我会抛出异常而不是返回状态(假设状态是某种错误).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读