VB.NET中,使用ByRef参数时,如何避免Null Reference异常?
- 内容介绍
- 文章标签
- 相关推荐
本文共计287个文字,预计阅读时间需要2分钟。
我有一个通过引用接收String类型的函数:Function Foo(ByRef input As String)。如果这样调用它:Foo(Nothing),我想让它做一些不同的事情,如果这样调用它:Dim myString As String=Nothing; Foo(myString),是否可以?
我有一个通过引用接受String的函数:Function Foo(ByRef input As String)
如果我这样称呼它:
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分钟。
我有一个通过引用接收String类型的函数:Function Foo(ByRef input As String)。如果这样调用它:Foo(Nothing),我想让它做一些不同的事情,如果这样调用它:Dim myString As String=Nothing; Foo(myString),是否可以?
我有一个通过引用接受String的函数:Function Foo(ByRef input As String)
如果我这样称呼它:
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的变量.
否.在任何一种情况下,该方法“看到”对指向任何内容的字符串(输入)的引用.从方法的角度来看,这些是相同的.

