Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C#] Jak zmienic 'property' w tablicy klas ?

gmp 04 Paź 2009 12:03 924 1
  • #1 04 Paź 2009 12:03
    gmp
    Poziom 19  

    Chodzi mi o sposob aby jedna instrukcja zmienic ktores propery w calej tablicy klas.
    Przyklad:
    public class Chart
    {
    private Color kolor;
    public Color Kolor
    {
    get { return kolor; }
    set { kolor = value; }
    }
    }
    public class Moja
    {
    Chart[] wykresy;
    public Moja()
    {
    wykresy = new Chart[10];
    for (int idx = 0; idx < wykresy.Length; idx++)
    wykresy[idx] = new Chart();
    }
    }
    i jak w klasie Moja zmienic property kolor wszystkich elementow 'wykresy'. Nie chodzi mi o umieszcenie tego w petli i zmienienie, to jest prosty przyklad z jednym property, wiec nie ma problemu, ale jak klasa ma ich kilkanascie i w wiekszosci z nich chcialbym ustawc property na takie same, to troche bez sensu w jezyku OO caly czas wstawiac petle...

    0 1
  • Pomocny post
    #2 04 Paź 2009 12:31
    jestam
    Specjalista Automatyk

    Który Framework?

    Możesz użyć pętli. Możesz opakować pętlę w metodę i napisać coś w rodzaju

    Code:

    void SetProperty<T>(IList<T> list, Action<T> action)
    {
       foreach(T obj in list) {
          action(obj);
       }
    }

    // użycie: anonimowy delegat
    SetProperty(wykresy, delegate(Chart obj) { obj.costam = wartosc; })
    // użycie: wyrażenie lambda
    SetProperty(wykresy, (obj) => obj.costam = wartosc);


    Wreszcie, możesz użyć tego przykładu

    Ale moim zdaniem to wszystko wytaczanie armaty na wróbla.

    Wstawiaj kod w znaczniku code

    0