62 votes

C# Renvoyer différents types?

J’ai quelque chose comme ceci:

J’ai une méthode et cette méthode me renvoie parfois différents types de valeurs (classes).

Comment puis-je faire cela de toute façon et bien sûr plus tard pour travailler avec les variables, b.e radio. Jouer(); et jusqu’à présent?

Dois-je utiliser des génériques? Comment?

52voto

RQDQ Points 8896

Voici comment vous pourriez le faire avec les génériques:

Mais vous devez savoir quel type vous voulez retourner au moment de la conception. Et cela signifierait que vous pourriez simplement appeler une méthode différente pour chaque création...

49voto

Marc Gravell Points 482669

S’il n’y a pas de type de base ou d’interface commun, alors - mais il serait généralement préférable d’avoir une sorte d’abstraction telle qu’une interface commune. Par exemple, si , et tous ```` implémentés , alors il pourrait renvoyer un .

27voto

Abhijit Ojha Points 251

utilisez le mot-clé dynamique comme type de retour.

Le mot-clé dynamic est préférable à utiliser dans ce cas au lieu d’un type d’objet

parce que le mot-clé dynamique conserve la structure sous-jacente et le type de données afin que / / vous puissiez directement inspecter et afficher la valeur.

dans type d’objet, vous devez lancer l’objet vers un type de données spécifique pour afficher la valeur sous-jacente.

Cordialement,

Abhijit

14voto

Rick Kuipers Points 6348

Si vous pouvez faire une classe abstraite pour toutes les possibilités, alors c’est fortement recommandé:

Ou une interface :

Si cela peut être quelque chose, vous pouvez envisager d’utiliser « object » comme type de retour, car chaque classe dérive de l’objet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X