Announcement

Collapse
No announcement yet.

Methode verdecken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Methode verdecken

    Hallo,

    ich möchte eine Collection schreiben und damit eine ArrayList als Basisklasse nehmen.

    Meine Collection soll aber verhindern, dass ein allgemeines Object reingeworfen wird. Ich möchte das z.B. das sichergestellt ist, dass nur ints drin sind:

    <pre>
    public class IntCollection: ArrayList
    {

    public int Add(int value)
    {
    return base.Add (value);
    }

    public new int this[int index]
    {
    get
    {
    return (int)base[index];
    }
    set
    {
    base[index] = value;
    }
    }

    }
    </pre>

    Bei dem Indexer scheint das ja auch gut zu gehen. Ich bekomme immer ints raus und kann auch nur ints reinwerfen. Aber wie kann ich die Add-Methode der ArrayList überdecken?

    Oder kann ich das allgemein noch eleganter machen? Generics kommen leider nicht in Frage, da noch 1.1er Framework.

    Grüße Kim

  • #2
    Hallo
    <P>
    MS schlägt dazu folgenden Weg vor (von CollectionBase ableiten): <P>
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionscollectionbaseclasstopic.asp

    <P>
    Eine andere Möglichkeit wäre, dass die IntCollection eine interne ArrayList hat, und die Methoden und Properties angepasst nach "aussen" leitet.
    <PRE>
    public class IntCollection {

    private ArrayList internalStorage = new ArrayList();

    public int Add(int value) {
    return (int) internalStorage.Add (value);
    }

    public int this[int index] {
    get {
    return (int) internalStorage[index];
    }
    set {
    internalStorage[index] = value;
    }
    }
    }
    </PRE>

    <P>
    Gruss Simo

    Comment

    Working...
    X