J'ai une classe sérialisable, je souhaite créer son tableau dans un autre script ici, j'ai une autre classe qui crée et initialise une gamme de questions. P> public class Initialize : MonoBehaviour
{
Question[] questions;
void Start()
{
questions = new Question[1];
StartCoroutine(InitializeArray());
}
IEnumerator InitializeArray()
{
yield return null;
questions[0].fact = "First Question";
}
}
3 Réponses :
Lorsque vous appelez
questions = new[] { new Question() };
Lorsque vous Déclarez un tableau de type de référence , chaque élément est initialisé en tant que null. C'est pourquoi vous obtenez une nullreferenceException lorsque vous essayez d'accéder à la propriété de l'un des éléments de tableau.
Pour éviter cela, vous pouvez initialiser le tableau avec le (s) type de référence initialisé: P>
Question[] questions;
questions = new Question[]
{
new Question
{
fact = "First Question"
},
new Question
{
fact = "Second Question"
}
};
Pouvez-vous spécifier comment j'initialiserais un tableau de 2 éléments, votre code ne fonctionne pas. Pouvez-vous me donner du code pour initialiser un tableau de deux éléments?
@Junedkhanmomin J'ai mis à jour la réponse à inclure un exemple d'initialisation de la matrice avec plusieurs éléments
Cela fonctionne, merci, n'y a-t-il pas une méthode simple pour le faire, comme pour les grandes tableaux, ce sera un moyen très fastidieux d'initialiser la matrice.
questions [0] = nouvelle question (); code> Si vous aviez un tableau plus grand, vous pouvez tout initialiser à l'aide d'une boucle: pour (int i = 0; i
@ Pinkfloydx33, il n'y avait pas besoin de votre commentaire. La réponse déjà acceptée est-ce que voir ici: Stackoverflow.com/a/54072338/8304176
Au moment de la rédaction de mon commentaire, pas de réponse initialisée via une boucle et c'était en réponse directe à votre commentaire précédent "N'y a-t-il pas une méthode simple ..."
En outre, rien dans la question initiale n'a indiqué que le tableau n'était nécessaire que toute sorte d'initialisation de boucle
meilleure façon d'initialiser la matrice de votre propre classe personnalisée: S'il y a plusieurs éléments à initialiser, nous pouvons utiliser une boucle comme: p>
@Devnull, c'est la façon la plus simple que j'ai trouvée.
Duplicail possible de Qu'est-ce qu'une nullreferenceExceptionException et comment puis-je Fixez-le?
Dupliqué possible de Exception de référence NULL lors de l'appel d'une matrice d'objet