2010-12-13 9 views
0

Comment est le meilleur pour le faire suivant Adresse de réservation est une structurevaleur mise à NULLABLE variables

BookingAddress? retval= null; 

vient ici ma logique et ihave suivante

BookingAddress address = new BookingAddress(reelinfo.LineID, reelinfo.McID); 
retval = address; 

Y at-il beaucoup plus agréable de mettre la valeur nécessaire à la retVal?

+0

Il existe des noms plus significatifs que 'retval'. Je sais que cela signifie «valeur de retour», mais vous renvoyez une adresse de réservation, pas une valeur de retour. – jason

+0

J'aime utiliser une variable appelée 'result' pour contenir la valeur de retour. Et dans les fonctions courtes il porte assez de sens, d'autant plus que son type est déjà 'BookingAddress' – CodesInChaos

+0

Sidenote: Vous pourriez vouloir considérer' BookingAddress' comme une classe – CodesInChaos

Répondre

2

Qu'en est-il juste:

retval = new BookingAddress(...); 
3

Pourquoi ne pas simplement:

BookingAddress? retval = new BookingAddress(reelinfo.LineID, reelinfo.McID); 

Un type de valeur non annulable est implicitement convertible au type de valeur nullable correspondante.

BookingAddress? retval= null; 
if(...) 
    retval = new BookingAddress(reelinfo.LineID, reelinfo.McID); 
+0

Je veux juste retourner un objet nul si je n'entre pas mon code logique. –

+0

@nightwalker Cela ne fait pas de différence. Vous pouvez toujours attribuer 'T' à' Nullable ' – CodesInChaos

+0

@Pabuc Je ne comprends pas ce que vous voulez. Si je ne déclare pas retval car il ne peut pas être nul. Bien sûr, je pourrais réécrire la fonction pour utiliser 'return null' et' return new BookAddress (...) 'mais cela ne répond pas à la question OPs. – CodesInChaos

1

Ceci est tout ce que vous devez:

return new BookingAddress(reelinfo.LineID, reelinfo.McID); 

Vous ne avez pas vraiment besoin de la variable retval si vous ne faites rien avec elle entre assigining sa valeur et le retourner.

Questions connexes