2010-12-03 6 views
3

J'ai une méthode dont le type de retour est null. J'essaie de nettoyer le code et j'ai décidé d'utiliser un opérateur conditionnel dans l'instruction return. Retour au début |Impossible de retourner la valeur null avec l'opérateur conditionnel (? :)

return id != 0 ? id : null; 

Fondamentalement, si l'ID n'est pas 0, passez une tête et renvoyez l'ID. Il ne devrait jamais retourner 0 de la base de données. Si, par hasard, il est 0, retourne null.

L'erreur est « Type d'expression conditionnelle ne peut être déterminée parce qu'il n'y a pas de conversion implicite entre « int » et « » »

L'op conditionnel est destiné à remplacer un fonctionnement Si ... Sinon instruction.

Y a-t-il quelque chose de mal à essayer d'utiliser un conditionnel de cette façon, dans cette combinaison? Qu'est-ce que je rate?

+0

Assurez-vous id est un 'int?', Et non un 'int'. –

+0

Vous comparez l'ID de variable avec 0 et renvoyez une autre variable nommée Id (capital I). Est-ce intentionnel? – Bazzz

Répondre

2

Est-ce que id de type int? (et non int)?

4

Essayez return id != 0 ? Id : (int?)null;?

+1

Assez drôle, 'return id! = 0? (int?) Id: null; 'fonctionne également. –

3

Vous devez quelque chose à forcer le type, comme

return id != 0? (int?)Id : null 
1

Cocher cette

private int? getme() 
    { 
     int? id; 
     id= 0; 
     return id != 0 ? id : null; 
    } 
Questions connexes