Когда в C # у нас есть опции параметров out
и ref
, в VB есть только одна: ByRef
.
Теперь небольшая «проблема» при попытке «устранить» предупреждение компилятора о том, что тест не был инициализирован перед передачей в качестве аргумента:
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. (редактировать)
В реальном проекте мой класс "parsable" имеет MyHour
со свойствами Hour
и Minute
. Я уже написал Parse(value as String)
с FormatException, но я думаю, что код может быть более понятным, компактным и быстрым, когда я не буду использовать блоки try try *