web-dev-qa-db-fra.com

Opérateur coalescent nul VB.NET?

Doublons possibles:
opérateur Coalesce et opérateur conditionnel dans VB.NET
Existe-t-il un équivalent VB.NET pour l'opérateur ?? de C #?

Existe-t-il un VB.NET intégré équivalent à l'opérateur de coalescence nul C #?

62
RiddlerDev

Oui, tant que vous utilisez VB 9 ou version ultérieure (inclus avec Visual Studio 2008).

Vous pouvez utiliser la version de l'opérateur If surchargé pour accepter seulement deux arguments:

Dim myVar? As Integer = Nothing
Console.WriteLine(If(myVar, 7))

Plus d'informations peuvent être trouvées ici dans un article de blog de l'équipe VB.NET.

(Oui, il s'agit d'un opérateur , même s'il ressemble à une fonction. Il se compilera dans le même IL que le "bon" coalescent nul opérateur en C #.)

Exemple

Dim b As Boolean?
Console.WriteLine("{0}.", If(b, "this is expected when b is nothing"))
'output: this is expected when b is nothing.

b = False
Console.WriteLine("{0}.", If(b, "this is unexpected when b is false"))
'output: False.

b = True
Console.WriteLine("{0}.", If(b, "this is unexpected when b is true"))
'output: True.
92
Cody Gray

D'après cela question il semblerait que la réponse soit If ()

7
SeeSharp