Bonjour,

Je cherche un moyen de retourner à l'utilisateur d'une bibliothèque une collection qui ne puisse pas être modifiée en taille (pas de Add() ni Remove() par exemple) mais dont les données puissent être modifiée.

Problème en profondeur :

J'écris en ce moment une bibliothèque pour lire/écrire des fichiers binaires normés (chaque champs a sa place propre et est documenté).

Imaginons que le fichier binaire commence (en-tête du fichier) par 5 shorts (System.Int16), je crée un BinaryReader et je met mes 5 shorts dans un conteneur de type List<short>.

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class EnTete
{
     // membre privé
     private List<short> m_list;
 
     // propriété
     public ??? Header { get { return m_list.??? ; } }
 
     //ctor
     // [...] initialisation de m_list et lecture de 5 shorts [ m_list.Add() ]
}

Ce que j'aimerais c'est trouver un conteneur (ou autre chose) que je puisse retourner à l'utilisateur et qui lui permette de modifier les shorts compris dans le membre m_list, mais qu'il ne soit pas possible de modifier la taille de m_list.

Quel serait le meilleur moyen de parvenir à ce résultat selon vous ? (quitte à utiliser autre chose qu'un conteneur de type List<T>)

Je vous remercie !

P.S : je travaille en C# avec le framework 3.0