2010-09-22 18 views
1

Je pense que c'est une question assez simple, mais je veux juste clarifier. Si j'ai une variable avec une valeur nulle, et que je la passe comme paramètre optionnel, le paramètre aura-t-il la valeur nulle ou la valeur par défaut?Passer une valeur null à un paramètre facultatif avec la valeur par défaut

dim str As String = "foo" 
dim obj As Object 
//call 1 
Request(str, str) 
//call 2 
Request(str) 
//call 3 
Request(str, obj) 


public Function Request(byVal someVal As String, Optional ByVal someVal2 As String = "bar") 
    ... 

Je sais que l'appel 1 fera someval == someval2 == "foo" dans la fonction, et appeler 2 fera someval == "foo" et someval2 == "bar" et appeler 3 fera someval == foo mais ce qui est someval2 égal à l'appel 3 ? Nullable ou barre?

aussi - je suis relativement nouveau pour vb.net et je ne pense pas que je comprends parfaitement le concept null/annulable/rien différences de C#

Répondre

2

« ce qui est someval2 égal à l'appel 3 annulable ou? bar?" Ce sera nul. Eh bien, en fait, vous ne pouvez pas appeler 3 ... il ne compilera pas car vous ne pouvez pas passer un objet en tant que paramètre de chaîne. Cependant, si vous aviez dim obj comme string = null, alors ce serait null.