J'ai une propriété type est Nullable
de Integer
une valeur par défaut Nothing
comme indiqué ci-dessous:Définir la valeur par défaut de la propriété Nullable Nothing ne fonctionne pas comme on le souhaite
Property TestId As Integer? = Nothing
le code suivant évalue la propriété testid Nothing (comme voulait)
Dim test As RadTreeNode = rtvDefinitionCreate.FindNodeByValue(DefinitionHeaderEnum.Test)
If test Is Nothing Then
definition.TestId = Nothing
Else
definition.TestId = test.Nodes(0).Value
End If
mais le code ci-dessous évalue 0 (valeur par défaut pour Integer
, même quand est Integer?
avec une valeur par défaut Nothing
)
Dim test As RadTreeNode = rtvDefinitionCreate.FindNodeByValue(DefinitionHeaderEnum.Test)
definition.TestId = If(IsNothing(test), Nothing, test.Nodes(0).Value)
Quel est le problème avec le code ci-dessus? De l'aide??
(plus tard dans le code lorsque l'appel de la propriété, la propriété a 0)
Je pense que 'Option Strict On' ne permet pas ici puisque l'opérateur Si fait une conversion automatique élargissement de Rien à 0 (type de' test.Nodes (0) .Value') - mais la solution devrait fonctionner! –
@PaulB. 'Option Strict On' aiderait ici de la façon qui provoquera une erreur de compilation, mettant en évidence le problème. – sloth
Pour moi 'Dim i As Integer? = If (True, Nothing, 1) 'ne provoque pas d'erreur de compilation mais convertit Nothing en 0 puis 0 en un 0 nul. –