Création d'un tableau de instancié de la classe d'objets
J'ai donc une classe (maclasse) que j'ai créé dans mon application en C#. Lorsque l'on travaille avec des tableaux de cette classe, j'ai été de penser que c'est plutôt ennuyeux d'avoir à écrire une boucle pour remplir un tableau de myClass objets. Je sais que lorsque vous créez un tableau de valeurs enum, ce tableau est déjà rempli avec les instances de l'enum qui sont mis à leur valeur par défaut.
Je me demande si le même type de fonctionnalité peut être réalisé avec une classe de sorte qu'un appel comme:
myClass[] myClassArray = new myClass[25];
entraînera dans un tableau de myClass objets qui sont des instances de la vide constructeur pour cette classe.
- Double Possible de: stackoverflow.com/questions/583574/...
- La raison pour laquelle tous les champs dans votre tableau sera initialisé avec la valeur null est que les classes sont des types référence. Les énumérations et primitves sont des types valeur et, par conséquent, capable d'initialiser avec une valeur par défaut.
- Pas vraiment un doublon; cette question est un "Comment" de la question, tandis que l'autre est un "Pourquoi" question à propos de la langue comportement.
- J'étais sûr que je ne serais pas capable de faire ce que je voulais, car les classes ne sont pas des types de valeur que Oded points. Voulais juste voir si il y avait quelque chose de mignon que je pouvais faire pour éviter d'écrire des boucles (ou de les mettre dans une méthode). À l'aide de Linq s'agit d'une bonne idée, mais le point est la facilité de création et si je suis en train d'écrire quelques lignes supplémentaires, je pourrais aussi bien écrire ma boucle.
Vous devez vous connecter pour publier un commentaire.
Qui se passe parce que les énumérations sont basés sur les types d'entiers qui sont des types de valeur et ne peut pas être
null
.La façon la plus simple pour initialiser un tableau de types de référence est la boucle que vous avez décrit (vous pouvez écrire très court syntaxe de le faire à l'aide de LINQ).
Essayez ceci:
Cela va créer 25 instances de votre classe, et les mettre dans un tableau.
Pourquoi ne pas encapsuler l'ennuyeux boucle dans une méthode?
return result;
😉