在C#中我们有out
和ref
参数选项,在VB中只有一个:ByRef
。VB.NET中'out'问题
现在,小“问题”试图“消灭”的编译器警告说,检验合格的参数之前未初始化的时候:
Dim test As MyParsableClass ' = Nothing need imperatively?? '
' some code ... '
MyParsableClass.TryParse("value", test) ' warning on "test" here
类的简短声明:
Class MyParsableClass
Public Shared Function TryParse(ByVal value As String, _
ByRef myParsableClass As MyParsableClass) As Boolean
myParsableClass = Nothing
If True Then
' parse code OK'
myParsableClass = New MyParsableClass()
Return True
Else
' parse code NOK '
' myParsableClass remains Nothing '
Return False
End If
End Function
End Class
也许解决方案是宣布
...Optional ByRef myParsableClass As MyParsableClass = Nothing)
但我不能设置此参数为可选一个。如果我会错过它会发生什么?
PS。(编辑)
在实际项目中,我的“可解析”类MyHour
与Hour
和Minute
性能。我已经写了一个FormatException的Parse(value as String)
,但我认为当我不使用try catch块时代码可以更清晰,更紧凑和更快...
你的问题到底是什么? – 2010-01-18 12:47:28
@divo:如何消除警告(没有'#pragma'或其他类似的技巧)? – serhio 2010-01-18 12:48:53
那么当你用'Nothing'初始化局部变量时会出现问题吗? – 2010-01-18 12:50:00