Quand en C#, nous avons les options de paramètres out
et ref
, en VB il y a une seule: ByRef
.'out' question dans VB.NET
Maintenant, peu « problème » en essayant de « éliminer » l'avertissement du compilateur dire que test n'a pas été initialisé avant de passer comme argument:
Dim test As MyParsableClass ' = Nothing need imperatively?? '
' some code ... '
MyParsableClass.TryParse("value", test) ' warning on "test" here
la classe brève déclaration:
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
peut-être une solution était de déclarer
...Optional ByRef myParsableClass As MyParsableClass = Nothing)
mais je ne peux pas définir ce paramètre comme facultatif. Que se passera-t-il si je le rate?
PS. (modifier)
Dans le projet réel, ma classe « analysable » est MyHour
avec Hour
et Minute
propriétés. J'ai écrit déjà le Parse(value as String)
avec un FormatException, mais je pense que le code pourrait être plus clair, compact et rapide quand je ne vais pas utiliser essayer blocs catch ...
Quelle est votre question exactement? –
@divo: Comment éliminer l'avertissement (sans '# pragma' ou d'autres trucs similaires)? – serhio
Y a-t-il un problème lorsque vous initialisez la variable locale avec 'Nothing'? –