在vb.net方法中使用ByVal,通常的做法是什么?

时间:2011-09-09 07:50:23

标签: vb.net syntax pass-by-value

在vb.net中,默认情况下方法的参数使用ByVal,使其明确是更好的做法/惯例吗?

例如:

ByVal:

Private Sub MySub(ByVal Q As String)
{
   ' ...
}
End Sub

没有ByVal:

Private Sub MySub(Q As String)
{
   ' ...
}
End Sub

3 个答案:

答案 0 :(得分:5)

根据Microsoft

  

在每个声明的参数中包含ByVal或ByRef关键字是一种很好的编程习惯。

如果您使用Visual Studio,如果您没有明确指定它,则默认插入ByVal

答案 1 :(得分:2)

从VS 2010 SP1开始,IDE ByValno longer automatically inserted

我个人认为最好不要手动插入ByVal,因为:

  1. 如果ByValByRef都没有明确指定,那么它就是default passing mechanism
  2. 从方法签名中省略ByVal会使ByRef脱颖而出。
  3. 它为代码添加了“噪音”。 VB.Net已经非常冗长,不需要用不必要的ByVal来混淆代码。

答案 2 :(得分:0)

通常的做法是可以在ByValue或ByReference中指定方法参数。在VB.NET中,默认参数类型为ByVal。在许多编程语言中,方法参数默认为by-value。如果参数不符合ByValByRef,那么参数类型将为ByVal。