Przejdź do zawartości

C Sharp/Tablice

Z Wikibooks, biblioteki wolnych podręczników.

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