Podstawowe typy danych
C# współpracuje ze standardowym zestawem typów danych ze środowiska uruchomieniowego .NET CLR. Wszystkie typy danych dzielimy typy skalarne (wartości) i typy referencyjne. Każdy typ danych dziedziczy pośrednio lub bezpośrednio po typie Object
? typy referencyjne dziedziczą bezpośrednio, natomiast typy skalarne dziedziczą po klasie ValueType, która z kolei dziedziczy po Object
.
Typy skalarne to inaczej typy proste, które przechowują wartości, na stosie.
Typy referencyjne natomiast przechowują na stosie adres (wskaźnik) do wartości na stercie, kiedy na jedną wartość wskazuje kilka zmiennych typu referencyjnego to zmiana wartości wpływa na każdą zmienną.
Podstawowe typy danych są zdefiniowane w przestrzeni nazw System
.
Przykładowo typ int odpowiada typowi System.Int32
ze środowiska wykonawczego.
Typ | Bajty | Typ uruchomieniowy | Opis |
[[C_sharp/byte]] | 1 | Byte | 8-bitowa liczba całkowita bez znaku |
[[C_sharp/sbyte]] | 1 | SByte | 8-bitowa liczba całkowita ze znakiem |
[[C_sharp/short]] | 2 | Int16 | 16-bitowa liczba całkowita ze znakiem |
[[C_sharp/ushort]] | 2 | UInt16 | 16-bitowa liczba całkowita bez znaku |
[[C_sharp/int]] | 4 | Int32 | 32-bitowa liczba całkowita ze znakiem |
[[C_sharp/uint]] | 4 | UInt32 | 32-bitowa liczba całkowita bez znaku |
[[C_sharp/long]] | 8 | Int64 | 64-bitowa liczba całkowita ze znakiem |
[[C_sharp/ulong]] | 8 | UInt64 | 64-bitowa liczba całkowita bez znaku |
[[C_sharp/float]] | 4 | Single | Liczba zmiennoprzecinkowa |
[[C_sharp/double]] | 8 | Double | Liczba zmiennoprzecinkowa podwójnej precyzji |
[[C_sharp/decimal]] | 8 | Decimal | Liczba zmiennoprzecinkowa stałej precyzji |
[[C_sharp/string]] | - | String | Ciąg znaków [[Unicode]] |
[[C_sharp/char]] | 2 | Char | Znak [[Unicode]] |
[[C_sharp/bool]] | - | Boolean | Wartość logiczna |
[[C_sharp/IntPtr]] | - | IntPtr | liczba całkowita ze znakiem, o rozmiarze zależnym od platformy, na której działa aplikacja (32 bity na platformie 32-bitowej, 64 bity na platformie 64-bitowej) |
[[C_sharp/UIntPtr]] | - | IntPtr | liczba całkowita bez znaku, o rozmiarze zależnym od platformy, na której działa aplikacja (32 bity na platformie 32-bitowej, 64 bity na platformie 64-bitowej) |
[[C_sharp/enum]] | - | ? | Typ wyliczeniowy |
[[C_sharp/object]] | - | ? | Objekt z którego wywodzą się wszystkie typy danych |
[[C_sharp/struct]] | - | ? | typ wartości |
[[C_sharp/class]] | - | ? | klasa |
[[C_sharp/interface]] | - | ? | interfejs |
[[C_sharp/delegate]] | - | ? | delegaty |
[[C_sharp/event]] | - | ? | zdarzenia |