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

发布于 2024-12-03 14:23:41 字数 259 浏览 1 评论 0原文

在 vb.net 中,方法的参数默认使用 ByVal,最好的做法/常见做法是使其明确?

例如:

有 ByVal:

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

没有 ByVal:

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

In vb.net the methods have their parameters using ByVal by default, it's better practice / common practice to make it explicit?

For example:

With ByVal:

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

Without ByVal:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

驱逐舰岛风号 2024-12-10 14:23:42

根据微软

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

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

According to Microsoft:

It is good programming practice to include either the ByVal or ByRef keyword with every declared parameter.

And if you use Visual Studio, it defaults to inserting ByVal if you don't explicitly specify it.

巴黎夜雨 2024-12-10 14:23:42

从 VS 2010 SP1 开始,ByVal 不再自动插入 通过 IDE。

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

  1. 它是 默认传递机制 无论如何,如果 ByValByRef 均未明确指定。
  2. 从方法签名中省略 ByVal 会使 ByRef 脱颖而出。
  3. 它给代码添加了“噪音”。 VB.Net 已经非常冗长,无需用不必要的 ByVal 来混乱代码。

Starting with VS 2010 SP1, ByVal is no longer automatically inserted by the IDE.

I personally think it's better not to insert ByVal manually, because:

  1. it's the default passing mechanism anyway, if neither ByVal nor ByRef are explicitly specified.
  2. omitting ByVal from method signature makes ByRef stand out.
  3. it adds 'noise' to the code. VB.Net is already very verbose, no need to clutter the code with unnecessary ByVals.
深者入戏 2024-12-10 14:23:42

通常的做法是可以在 ByValue 或 ByReference 中指定方法参数。在 VB.NET 中,默认参数类型是 ByVal。在许多编程语言中,方法参数默认是按值。如果参数未使用 ByValByRef 限定,则参数类型将为 ByVal。

It is common practice that a method arguments can be specified at ByValue or ByReference. In VB.NET, the default argument type is ByVal. In many programming language, method arguments are by-value by default. If argument is not qualified with ByVal or ByRef then the argument type will be ByVal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文