ReadOnly List Property

ReadOnly List Property

Oftmals kommt es vor, dass eine Klasse Listen als Eigenschaften besitzt, die wiederum mehrere Werte enthalten, wobei die Verwaltung dieser Liste nur innerhalb der Klasse möglich sein soll.
Das kann z.B. praktisch sein, wenn die Klasse dem Anwender eine einfache Möglichkeit geben will, die vorhandenen Einträge zu durchsuchen aber die Verwaltung nur innerhalb der Klasse geschehen soll.

Dazu mal folgendes Beispiel:
class ItemClass
{
    #region Fields

    private List<string> m_itemsInternal;

    #endregion

    #region Constructor

    public ItemClass()
    {
        m_itemsInternal = new List<string>();
        m_items = m_itemsInternal.AsReadOnly();
    }

    #endregion

    #region Methods

    public void Add(string name)
    {
        m_itemsInternal.Add(name);
    }

    #endregion

    #region Properties

    private ReadOnlyCollection<string> m_items;
    public ReadOnlyCollection<string> Items
    {
        get { return m_items; }
    }

    #endregion
}

Wie ihr sehen könnt, hat die Klasse Items eine ReadOnlyCollection als Eigenschaft.
Das besondere daran ist, das die Einträge jedoch nur intern über die Add Methode hinzugefügt werden können, der Benutzer aber über die Items-Eigenschaft wie gewohnt iterieren kann.

Auch wenn dieses Beispiel keinen Sinn ergibt, kann es an vielen Stellen sehr sinnvoll eingesetzt werden.
Um einen Kommentar zu hinterlassen, ist eine Anmeldung erforderlich.