Type de retour tableau en c#

Résolu
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 28 avril 2009 à 18:49
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 29 avril 2009 à 12:16
salut,
je veux savoir est-il possible d'avoir une methode de type de retour tableau en c#
Merci d'avance



 




 

7 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 avril 2009 à 19:57
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());
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 avril 2009 à 22:41
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-
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 avril 2009 à 08:11
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.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 avril 2009 à 09:27
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-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 avril 2009 à 11:01
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 ! -
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 avril 2009 à 11:19
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 avril 2009 à 12:16
Merci beaucoup

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