Comment faire fonctionner l'extension suivante? Je lie la combinaison de la combinaison à une énorme et, dans ce cas, il ne compile pas car il renvoie Remarque: je le veux revenir null ( au lieu de défaut (t)). La question est que la question est que quelle est l'expression que je dois utiliser? strong> p> p> null code>.
3 Réponses :
C'est impossible. Les types de valeur ne peuvent pas être nuls. Votre méthode d'extension renvoie une instance de t code> et si ce t est une énumération (type de valeur), sa valeur ne peut pas être nulle. Donc, sans changer votre type de retour, une telle signature de méthode ne peut tout simplement pas exister. En tant que contraignant le paramètre générique pour être un énumé, c'est aussi impossible en C # mais possible dans MSIL. Jon a blogué à ce sujet . p>
Et s'il est retourné par défaut
@Tim, bien sûr, qui fonctionnera et la bonne façon d'écrire cette méthode d'extension, mais le OP le sait déjà parce qu'il l'a mentionné dans sa question. J'ai juste essayé de lui expliquer que la signature de la méthode générique qu'il tente d'écrire ne peut tout simplement pas exister.
@Darin: Merci pour la réponse, dans mon cas, la suggestion qui a été répondue par Konrad utile.
@Darin, je viens de relire la question de l'OP et j'ai vu qu'il ne voulait pas utiliser par défaut
Renvoie une nullable au lieu d'une plaine t code>:
L'approche la plus courante dans ce cas fait partie de tous les autres membres de votre énumération Définir Aucun code>, dans ce cas dans votre logique
Aucun code> ==
null code>. p>
Yup, c'est utile, je pense que c'est correct juste en attribuant 0 code> à
Aucun code> Valeur et que la poste renvoie
par défaut (t) code>
@French Boy: C'est simple et lisible, donc la plus naturelle de résoudre ce genre de problèmes.
Après avoir répondu à votre question concernant le retour NULL à partir de la méthode générique: Stackoverflow.com/Questtions/302096/...