[C#] Czy mozna zdefiniwać tablice w stuct

czy jest coś takiego możliwe w C#:

public struc struktura

{

public Color[] kolory;

kolory=new Color[3];

}

zapewne nie bo się nie kompiluje, ale jak można zdefiniować coś “na podobieństwo” tablicy? – Dodane 11.01.2009 (N) 20:06 – ok znalazlem takie rozwiazanie, jest ono optymalne?

struct ustawienia

    {

public void ust()

        {

        kolory = new Color[3];

        }

        public Color[] kolory;


}

narazi się kompiluje, ale nie działa – Dodane 11.01.2009 (N) 20:20 – OK, znalazlem rozwiazanie, chyba, ze ktos zna lepsze:

//definicja struktury

struct ustawienia

    {

        public void ust()

        {

        kolory = new Color[3];

        }

}



[code]

//uzycie w programie

            obecne.ust();

            obecne.kolory[1] = Color.Black;

            obecne.kolory[2] = Color.Red;

            obecne.kolory[1] = Color.White;

Nie działa tzn. ? Jaki efekt chcesz osiągnąć ? Może lepiej użyć klasy ? Tymczasem może spróbuj tak:

struct Struktura

{

public Color[] color;

public Struktura(int size)

{

color = new Color;

}

}

Chyba nie ma sensu posiadanie struktury, która przechowuje tylko jedną tablicę (no, ale zakładam, że nie to tylko o to chodzi).

Struktury w odróżnieniu od klas są typami przekazywanymi przez wartość, dlatego przy ich tworzeniu trzeba dokładnie wiedzieć ile i jakich danych będą przechowywały, aby móc zarezerwować żądany obszar pamięci. Z tego powodu struktur używa się raczej do przechowywania danych statycznych, niezmiennych w czasie trwania programu.