Type de retour tableau en c# [Résolu]

Signaler
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
salut,
je veux savoir est-il possible d'avoir une methode de type de retour tableau en c#
Merci d'avance



 




 

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut,

    private int[] test ()
        {
            int[] t = new int[2];
            t[0] = 1;
            t[1] = 2;
            return t;
        }

//appel

            int[] t = test();
            MessageBox.Show(t[1].ToString());
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Salut,
Oui c'est possible, mais sauf erreur ça fait partie des best pratices de l'éviter au maximum (je sais plus pourquoi mais j'ai en tête une question de performance... )

<hr />
-Blog-
-Site Perso-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Bidou, une question, de perf ? Non je ne pense pas, après tout ce n'est qu'une référence qui est retournée.. 

Ce qui est ennuyeux c'est de retourner une référence sur un tableau membre d'une classe, bien souvent on est obligé de renvoyer une copie, ça c'est coûteux en perf.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Oui c'est cela :)

C# 3.0 Coding Guidelines - Guidelines for .NET development

Don’t return an array

This allows calling code to change the items in the array. Even though callers cannot replace the array itself with another array, they can still replace an item within the array with another item. This may cause unexpected effects within the class that owns the array. Instead, return an

IEnumerable<T>, or, if the number of items is important for the caller, an ICollection<T>.

<hr />
-Blog-
-Site Perso-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
40
Salut

Intéressant, Bidou. (Tu as trouvé ça sur quel site d'ailleurs ?)
Cependant, un tableau a l'avantage d'être serialisable contrairement à un IEnumerable si mes souvenirs sont corrects.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
40
Merci beaucoup

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -