C# Passage de tableau de string par référence...

Résolu
Signaler
Messages postés
76
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 mai 2006
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Salut tt le monde.

Dans le cadre de mon project de fin d'étude me revoilà confronté à un autre bug incompréhensible.

J'ai une fonction qui reçois une référence vers un tableau de string

enfin voilà un exemple:


Code:
private void ma_fct_apellante()
{
...
string [] montab = null;
ma_fct_appellée(...,ref montab,...);
}
private void ma_fct_appelléé(...,ref string [] montab,...)
{
for(i=...)
{
montab[i] = "....."
}


}


J'ai une erreur qui apparais mais pas à la compilation car ma synthaxe est bonne , mais plutot à l'execution dans la console.

Cette erreur est: Object reference not set to an instance of an object

Voyez vous l'erreur?

Merçi

7 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Salut,
Ton tableau montab est null, donc c'est normal.
Il faut d'abord faire : montab = new string[taille du tableau]



Mx
MVP C#
Messages postés
76
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 mai 2006

Merçi a toi et surtout pour ta rapidité, çelà résout mon problème.

Je suis nouveau sous C#, j'ai beaucoup bossé en C , C++ et les références c'étais pas courant...
Messages postés
76
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 mai 2006

euuuuh petite question, comment je fais pour créer ce tableau dynamiquement alors?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Si tu ne connais pas le nombre d'element de ton tableau, utilises un ArrayList.
ArrayList maList = new ArrayList();
puis
ArrayList.Add("Ma string"); //pour y ajouter un element

Pour obtenir un tableau avec les elements de ton ArrayList :
string temp[] = (string[])maList.ToArray(typeof(string));

ou

string[] temp = new string[maList.Count];
maList.CopyTo(temp);

Mx
MVP C#
Messages postés
76
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 mai 2006

Je n'ai pas de type arraylist!!

Tout ce que j'ai c'est array mais je n'arrive pas a l'instancier :(
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
déclare l'espace de nom System.Collections au préalable.

using System.Collections; // en haut de ton fichier



Mx
MVP C#
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Lucasd, on n'utilise pas le mot clé ref pour passer un tableau, un Array est déja un type référence, là tu viens de passer ce qu'on appelle en C/C++ un double pointeur !! A moins que ce soit le but recherché..