Programowanie w języku C#

Podstawowe typy danych

  • 2010-12-23 10:22
  • 0 komentarzy
  • 18397 odsłon
  • 6/6
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.


TypBajtyTyp uruchomieniowyOpis
byte1Byte8-bitowa liczba całkowita bez znaku
sbyte1SByte8-bitowa liczba całkowita ze znakiem
short2Int1616-bitowa liczba całkowita ze znakiem
ushort2UInt1616-bitowa liczba całkowita bez znaku
int4Int3232-bitowa liczba całkowita ze znakiem
uint4UInt3232-bitowa liczba całkowita bez znaku
long8Int6464-bitowa liczba całkowita ze znakiem
ulong8UInt6464-bitowa liczba całkowita bez znaku
float4SingleLiczba zmiennoprzecinkowa
double8DoubleLiczba zmiennoprzecinkowa podwójnej precyzji
decimal8DecimalLiczba zmiennoprzecinkowa stałej precyzji
string-StringCiąg znaków Unicode
char2CharZnak Unicode
bool-BooleanWartość logiczna
IntPtr-IntPtrliczba 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)
UIntPtr-IntPtrliczba 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)
enum-?Typ wyliczeniowy
object-?Objekt z którego wywodzą się wszystkie typy danych
struct-?typ wartości
class-?klasa
interface-?interfejs
delegate-?delegaty
event-?zdarzenia