C Sharp/Tablice
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;
}