Przestrzeni
e nazw.
Tablice
Przegląd zagadnień
Przestrzenie nazw
Tablice
Podsumowanie
Pytania sprawdzające
Laboratorium
Przestrzenie nazw (1)
Język C# jest przykładem języka
wykorzystującego wiele klas. W każdej
z nich istnieje wiele różnych
elementów o różnych nazwach, których
z oczywistych względów ilościowych
nie można zapamiętać
Prędzej, czy później przy nazywaniu
jakiegoś elementu wykorzysta się
użytą już w innej klasie przez kogoś
nazwę
Rozwiązanie – przestrzenie nazw –
ograniczają one zasięg ważności nazwy
elementu
Przestrzenie nazw (2)
Przy pomocy dyrektywy using możliwe jest
skrócenie nieco zapisu pełnej nazwy klasy
wraz z przestrzeniami nazw
Załóżmy, że potrzebujemy doświadczonego
programisty. Musimy jednak wiedzieć, w jaki
sposób pisze on programy, bowiem inaczej
pracuje programista piszący struturalnie
(struktura.programista), a inaczej piszący
obiektowo (obiekty.programista). W obu
przypadkach słowo programista ma inny
wydźwięk
Ważną rolę pełni operator kropki,
pozwalający na uzyskanie dostępu do
metody i danych klasy, a zarazem
ograniczający zasięg ważności nazwy
Przestrzenie nazw – przykład
Kod C#
using System;
namespace
PrzestrzenZewnetrzna {
namespace
PrzestrzenWewnetrzna {
class Owoc {
public static void Jablko() {
Console.WriteLine("Jablko - element
wywołany w innej przestrzeni nazw");
}
}
}
class PrzestrzenWywolujaca {
public static void Main() {
PrzestrzenWewnetrzna.Owoc.Jablko();
}
}
}
Przestrzeń nazw – podsumowanie
Przestrzenie nazw pomagają w
podziale hierarchii obiektów oraz w
przezwyciężeniu jest jej złożoności
Używanie dyrektywy using umożliwia
wielokrotnie skrócenie zapisu, jednak
ceną może być zmniejszenie
czytelności kodu. Problem może
pojawić się także, gdy pracujemy w
dwóch przestrzeniach zawierających
elementy o identycznej nazwie
Tablice
Najprostszym przykładem kolekcji
elementów tego samego typu jest
tablica
Tablice posiadają wbudowany
mechanizm indeksowania, dzięki
czemu można natychmiast uzyskać
dostęp do dowolnego elementu
Elementy tablicy numerowane są od 0,
zatem ostatnim elementem tablicy k-
elementowej będzie element o
indeksie k-1
Tablice – przykład obiektów
Tablice w języku C# są obiektami, co
pozwala udostępniać użyteczne
metody i właściwości
Deklaracja tablicy ma postać:
Mimo zwyczajnego wyglądu deklaracji,
w programie rzeczywistości powstaje
obiekt typu System.Array (lub
pochodnego typu)
Tablice są jedynym typem kolekcji
posiadającym wbudowaną obsługę w
języku C#
typ[] nazwa_tablicy
Tablice - przykład
Kod C#:
namespace PrzykladTablicy {
public class Samochod {
public Samochod (int Lp) {
this.Lp = Lp;
}
public override string ToString() {
return Lp.ToString();
}
private int Lp;
}
public class Tester {
static void Main() {
int[]
TablicaCalkowitych;
Samochod[] TablicaLp;
TablicaCalkowitych =
new int[5]
;
TablicaLp = new Samochod[3];
for (int i = 0; i<TablicaLp.
Length
; i++) {
TablicaLp[i] = Samochod[i+5]
;
}
}
}
}
Tablice - dalsze informacje
Do pracy z kolekcjami przygotowana
została nowa instrukcja foreach,
umożliwiająca kolejne użycie
wszystkich elementów kolekcji
Składnia:
Możliwa jest inicjalizacja elementów
tablicy w czasie tworzenia
egzemplarza, co można uczynić przy
pomocy dwojakiej składni,
przykładowo:
foreach(typ nazwa_elementu in wyrazenie) instrukcja
int[] TablicaCalkowitych = new int[3] {2, 5, 9}
int[] TablicaCalkowitych = {2, 5, 9}
Tablice wielowymiarowe (1)
Tablice prostokątne - mają przynajmniej
dwa wymiary. Aby zadeklarować na
przykład prostokątną tablicę
trójwymiarową, używamy składni
Możliwe jest jednoczesne zadeklarowanie
i utworzenie egzemplarza tablicy
trójwymiarowej:
Dopuszczalne jest także inicjalizowanie
bezpośrednie elementów tablicy - na
przykład dla tablicy o wymiarach 2x4
miałoby to postać:
typ[ , , ] TablicaProstokatna3D
int[ , , ] TablicaProstokatna3D = new int[2,3,5];
int[,] TablicaProstokatna2D = { {1, 2, 3, 4}, {2, 3, 4,
5} };
Tablice wielowymiarowe (2)
Tablice nieregularne - poszczególne
rzędy nie muszą być tej samej długości
Tworząc tablicę typu nieregularnego
należy podać liczbę rzędów każdej
tablicy. Każda z tablic musi zostać
zadeklarowana
Do deklaracji tablicy tego typu służy
składnia:
Przykładowo dostęp do czwartego
elementu drugiego rzędu powyższej
tablicy możemy uzyskać dzięki składni
typ[][] NazwaTablicy
NazwaTablicy[1][3]
Podsumowanie
Przestrzenie nazw są ważnym
elementem pracy programisty –
umożliwiają ograniczenie zasięgu
ważności nazwy
Podstawowym rodzajem kolekcji
identycznych elementów jest tablica
W języku C# wyróżniamy dwa rodzaje
tablic wielowymiarowych – prostokątne
i nieregularne
Pytania sprawdzające
Jaka jest rola operatora kropki w
przestrzeniach nazw?
Do czego służy instrukcja foreach?
Omów rodzaje tablic.
Laboratorium