VB.NET中,使用ByRef参数时,如何避免Null Reference异常?

2026-05-06 10:111阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计287个文字,预计阅读时间需要2分钟。

VB.NET中,使用ByRef参数时,如何避免Null Reference异常?

我有一个通过引用接收String类型的函数:Function Foo(ByRef input As String)。如果这样调用它:Foo(Nothing),我想让它做一些不同的事情,如果这样调用它:Dim myString As String=Nothing; Foo(myString),是否可以?

我有一个通过引用接受String的函数:

Function Foo(ByRef input As String)

如果我这样称呼它:

VB.NET中,使用ByRef参数时,如何避免Null Reference异常?

Foo(Nothing)

我想要它做一些不同的事情,如果我这样称呼它:

Dim myString As String = Nothing Foo(myString)

是否有可能在VB .NET中调用方法的方式中检测到这种差异?

编辑

为了澄清为什么我想要这样做,我有两种方法:

Function Foo() Foo(Nothing) End Function Function Foo(ByRef input As String) 'wicked awesome logic here, hopefully End Function

所有逻辑都在第二个重载中,但是如果Nothing传递给函数,我想执行不同的逻辑分支,而不是传入包含Nothing的变量.

否.在任何一种情况下,该方法“看到”对指向任何内容的字符串(输入)的引用.

从方法的角度来看,这些是相同的.

本文共计287个文字,预计阅读时间需要2分钟。

VB.NET中,使用ByRef参数时,如何避免Null Reference异常?

我有一个通过引用接收String类型的函数:Function Foo(ByRef input As String)。如果这样调用它:Foo(Nothing),我想让它做一些不同的事情,如果这样调用它:Dim myString As String=Nothing; Foo(myString),是否可以?

我有一个通过引用接受String的函数:

Function Foo(ByRef input As String)

如果我这样称呼它:

VB.NET中,使用ByRef参数时,如何避免Null Reference异常?

Foo(Nothing)

我想要它做一些不同的事情,如果我这样称呼它:

Dim myString As String = Nothing Foo(myString)

是否有可能在VB .NET中调用方法的方式中检测到这种差异?

编辑

为了澄清为什么我想要这样做,我有两种方法:

Function Foo() Foo(Nothing) End Function Function Foo(ByRef input As String) 'wicked awesome logic here, hopefully End Function

所有逻辑都在第二个重载中,但是如果Nothing传递给函数,我想执行不同的逻辑分支,而不是传入包含Nothing的变量.

否.在任何一种情况下,该方法“看到”对指向任何内容的字符串(输入)的引用.

从方法的角度来看,这些是相同的.