4.8 C#
Dalej: 5. Tablice statyczne i wskaźniki
W górę: 4. Podstawowe typy danych
Wstecz: 4.7 Odnośniki
4.8 C#
Podobnie jak w Javie
i C/C++, w języku C# wszystkie
zmienne muszą być przed użyciem zadeklarowane, a zatem jest to
również język ze ścisłą kontrolą typu.
W C#, jak w Javie, zmienne wszystkich typów mają ustaloną
reprezentację i nie ma tu, jak w C/C++, żadnych dowolności.
W odróżnieniu jednak od Javy, liczbowe typy
całkowite występują, tym razem właśnie jak w C++, w obu formach:
ze znakiem i bez znaku.
Zmienne liczbowe są wszystkie formalnie strukturami wywiedzionymi
z klasy
System.ValueType.
Każdemu typowi C# odpowiada klasa z przestrzeni nazw
System
(odpowiadającej pakietowi
java.lang z Javy).
Nazywamy je strukturami
a nie obiektami, gdyż w C# istnieją, prócz klas i obiektów
właśnie struktury.
Są one wzorowane na strukturach znanych z języka C, o których
będziemy jeszcze mówić. Na razie zapamiętajmy, że
klasa
ValueType tak „opakowuje''
struktury odpowiadające liczbom, aby ich użycie było zgodne
z semantyką wartości, a nie odniesień (referencji). Zatem zmiennych
liczbowych używamy w C# tak samo jak w Javie czy C/C++.
Deklarując zmienne można używać zarówno nazw klas z przestrzeni
System jak i ich synonimów bardziej przypominających
nazwy znane nam z Javy czy C/C++. Tak więc np. deklaracja
System.Int32 k = 32;
jest równoważna
int k = 32;
W poniższej tabeli zamieszczone są podstawowe typy
danych w C# wraz z ich synonimami z przestrzeni nazw
System.
Tablica 4.3:
Typy danych w C#
Typ w C#
Klasa z
SystemOpis
sbyte
SByte
całk., 1 bajt, ze znakiem
byte
Byte
całk., 1 bajt, bez znaku
char
Char
całk., 2 bajty, bez znaku (kod Unicode)
short
Int16
całk., 2 bajty, ze znakiem
ushort
UInt16
całk., 2 bajty, bez znaku
int
Int32
całk., 4 bajty, ze znakiem
uint
UInt32
całk., 4 bajty, bez znaku
long
Int64
całk., 8 bajtów, ze znakiem
ulong
UInt64
całk., 8 bajtów, bez znaku
decimal
Decimal
całk., 12 bajtów, ze znakiem
float
Single
zmiennopozyc., 4 bajty
double
Double
zmiennopozyc., 8 bajtów
bool
Boolean
logiczna:
true,
false
string
String
napis (Unicode)
object
Object
dowolny obiekt
Podobnie jak w Javie, typ logiczny (
bool, czyli
System.Boolean) jest całkowicie samodzielnym typem i
nie ma nic wspólnego z typami całkowitymi.
Znaki (zmienne typu
char, czyli
System.Char)
są reprezentowane przez całkowite kody Unicode'u, jak w Javie.
Język C# przejął też z języka C/C++ typ wyliczeniowy.
Wyliczenia i zmienne typów wyliczeniowych definiuje
się podobnie jak w C/C++, choć należy pamiętać o obiektowości
C#. Otóż wyliczenia stanowią osobny typ obiektowy (wszystkie są
wywiedzione z klasy
System.Enum) i wobec tego można je
definiować poza wszystkimi klasami. Do poszczególnych
elementów trzeba wtedy oczywiście odnosić się przez
nazwy kwalifikowane nazwą typu, jak w poniższym przykładzie:
Wyszukiwarka
Podobne podstrony:
node245 T2YQJZD6LDQ6LP5OYUC3OHQJMT5QYEUMQNSNPTInode245node243node242 7L22GLKYOY7WCD2ENRGH2MBHLMAUTJL2GTKKYNYnode246 YIF4WCYAY6SJS2OLKTPEMD6TGPZD4BLGOW43G3Anode24 PDHWHKXXAJCE53SGAZZQAGL4RLNJ7ZXWLGOY4QYnode24 3ZDS5WHDJGYZQJTUOOHV6YJOOXTC2GUWSJC775Inode24node244node243 YS2T6SICTFF6CFMWRO7X5VPFRR7EJ4VCN3TKXFYnode24 2PNVCNM2PFRUZA3ENONWT4NSN4DPLHTMPZ3FH7Ynode241node244 D3H4Q5QNKWCUAFHHJWADTRR7OS7G5JGYHSPAIMQnode249 7JYBNHKY3DEZ42ROO3VGHKZUJVB2IRUD4MHHCUYnode247node24 1node248 C33U2NRXWJ5BBSGXFIODC6MPK44O246Y7WN2G7Ywięcej podobnych podstron