Czemu tablice są w programowaniu obiektowym?

edytuj

Czytelnik, który zna inne języki takie jak C czy C++ może się zdziwić czemu tablice są w dziale na temat programowania obiektowego. Otóż w C# tablice należą do typów referencyjnych i są użytkowane jak obiekty.

Klasą bazową dla tablic jest klasa System.Array. Klasa ta definiuje wiele przydatnych metod, wykorzystywanych do pracy z tablicami. Przykładowo można by wymienić:

Składowa klasy Array Opis
Clear() metoda statyczna wypełniająca tablice 0 dla wartości lub null dla typów referencyjnych.
Lenght właściwość jedynie do odczytu, zwraca liczbę elementów danej tablicy.
Reverse() odwraca kolejnośc tablicy jednowymiarowej.

Używanie tablic

edytuj

Aby stworzyć tablicę 10 zmiennych typu int piszemy:

int[] tablica = new int[10];

Do tablicy odwołujemy się tak jak w w/w językach czyli nazwa[indeks]. Należy pamiętać, że pierwszy element ma indeks 0 a ostatni rozmiar_tablicy-1. Przypisujemy wartość pierwszemu, a następnie ostatniemu elementowi naszej tablicy:

tablica[0]=1;
tablica[9]=10;

Odwołanie do elementu o indeksie 10 wywoła błąd i aplikacja natychmiast się zakończy.

Tablicę można także bezpośrednio inicjalizować:

int[] tablica = {1,2,3,4,5};

Tablica wielowymiarowa

edytuj

Jej użytkowanie i tworzenie niewiele się różni. Każdy kolejny wymiar podajemy po przecinku w nawiasie kwadratowym:

int[,] tablica = new int[2,2];
tablica[1,0]=1;
int[,] tablica2 = {{1,2},{3,4}};

Tablice nieregularne

edytuj

Ciekawostką w C# są tablice wielowymiarowe, w których jeden z wymiarów może być zmienny. Podajemy jedynie pierwszy wymiar a drugi pomijamy:

int[][] tablica = new int[3][];
tablica[0]= new int[4];
tablica[1]=new int[2];
tablica[2]=new int[8];

Tablice jako parametry oraz zwracane wartości

edytuj

Tablice jako parametr są zwykle wykorzystywane, gdy do metody trzeba przekazywać zmienną liczbę parametrów danego typu. Np. gdy chcemy stworzyć metodę do obliczania średniej arytmetycznej.

public static double Srednia(double[] dane)
        {
            double wynik = 0.0;

            for (int i = 0; i < dane.Length; i++)
            {
                wynik += dane[i];
            }

            return wynik / dane.Length;
        }
//Przykłady zastosowania
Srednia(1.0, 2.0, 3.0, 4.0);

double[] dane = {1.0, 2.0, 3.0, 4.0};
Srednia(dane);

Inne zastosowanie tablic to wykorzystanie ich jako zwracana funkcja - z zastrzeżeniem, iż poniższy przykład należy przetestować w praktyce, gdyż może zawierać błędy

public static int[] dane()
        {
            int[] dane = {1, 2, 3, 4};

            foreach (int dana in dane)
            {
                dana += 5;
            }

            return dane;
        }
Poprzedni rozdział: Programowanie obiektowe
Następny rozdział: Wyjątki