2014-05-13 143 views
0

我沒有太多的經驗,VB.NET,雖然我搜索,我無法找到答案如下:初始化對象的ByRef

說我有一個Dim myVar As MyClass,然後函數我打算初始化它,例如Public Sub MyInit(ByRef myVar As MyClass)。試圖調用這個方法在編譯器中給我一個空引用錯誤,指出我應該首先初始化變量(但我打算把這個功能放到我的方法中!)。

任何想法,我怎麼能實現我在這裏嘗試? PS:我認爲在MyClass中創建Initialize()方法或製作Public Function MyClassInitialize() As MyClass更合理,但在我的特殊情況下這是不可能的。

+0

的一種方式將它(一個NullReference)傳遞給任何或任何地方來初始化它。另請參閱:http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it – Plutonix

+1

你有沒有嘗試明確地把它設置爲「Nothing」? ('Dim myVar As MyClass = Nothing') – pete

回答

4

如果您只是擔心​​警告,您可以將聲明更改爲Dim myVar as MyClass = Nothing

如果你正在寫的MyInit子,你也可以把它變成一個返回的MyClass實例的功能:避開它,所以你不要有給myVar的更多範圍

Public Function MyInit() As MyClass 
    Dim myLocalVar As New MyClass() 
    '... initialization here 
    Return myLocalVar 
End Function 

... 

Dim myVar As MyClass = MyInit() 
+0

是的,加入'= Nothing'完成了這個訣竅,謝謝! –