Array en readonly

Résolu
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 26 nov. 2007 à 15:35
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 26 nov. 2007 à 17:25
Bonjour,
J'ai une propriété de ma classe qui est un tableau de float, j'aurais voulu que l'utilisateur puisse toujours avoir accès à ces informations, mais pas les modifier, que les éléments du tableau renvoyés par la propriété soient en lecture seule.
Comment puis-je faire ?

<hr size="2" width="100%" />Julien.

8 réponses

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
26 nov. 2007 à 16:41
t'as essayé avec un indexer? ca peut etre ce que tu cherches ... (http://www.csharphelp.com/archives/archive140.htm)

Nul ne devient grand par la guerre...
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
26 nov. 2007 à 16:49
Comme le dit Miltiades, il suffit de jouer avec l'indexer.


Je sais pas si c'est une bonne solution mais tu peux faire une classe collection qui dérive de l'interface collection.


FloatCollection : ICollection<float>


{
private List<float> objCol = new List<float>(); //ou une ArrayList


//Méthodes de l'interface à faire (Add, ...)


//Indexer


public float this[int index]


{


get{ return objCol[index];}


}


}

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
cs_blueangel Messages postés 69 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 mars 2009
26 nov. 2007 à 16:16
  public Array Maproriete1
    {
        get { return Maproriete; }
   ////     set { Maproriete = value; } tu enléve le set ton objet est en lecture seule
    }
blueangel13
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 nov. 2007 à 16:18
Non ça je connais quand même
Le problème est qu'avec ça, l'utilisateur peut toujours modifier le éléments de Mapropriete.
En fait ce que je cherche, c'est de rendre les éléments de l'array Mapropriete de ton exemple en lecture seule.

<hr size="2" width="100%" />Julien.
0

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

Posez votre question
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 nov. 2007 à 16:48
Ouaip, un indexeur est une solution, mais alors je dois passer par une classe intermédiaire entre la classe Array et la classe de Mapropriete, afin de mettre un indexeur en lecture seule... Je pense que c'est ce que je vais finir par faire...
Je trouve qu'une surcharge de Array.Create avec la possibilité de lecture seule ou quelque chose du genre aurait été bien plus pratique...

<hr size="2" width="100%" />Julien.
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
26 nov. 2007 à 16:50
Oups, désolé pour le post en même temps ^^

Bonne journée

(Décidement, c'est pas ma journée ^^)

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
cs_blueangel Messages postés 69 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 mars 2009
26 nov. 2007 à 17:21
Ah si t'as pas de probléme à utiliser les listes au lieu des array tu peux faire ça c'est plus simple que les index.
public IListNames
{
get {
        return new _names.AsReadonly();
     }
}

private List _names = new List();

blueangel13
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 nov. 2007 à 17:25
Ouaip, mais non merci, je dois utiliser des arrays, c'est dans le cadre de calcul matriciel, je me vois mal commencer à travailler avec des listes :p

<hr size="2" width="100%" />Julien.
0
Rejoignez-nous