Typy wartościowe
Zmienna jest deklarowana przy użyciu podstawowych lub wbudowanych typów danych również struktury zdefiniowanej przez użytkownika typy wartościowe przechowuje swoją zawartość w pamięci przydzielonej na stos.
W języku C# istnieje wiele typów wartościowych, między innymi:
Typy całkowitoliczbowe
Typy zmiennoprzecinkowe
Typy logiczne
Typy znakowe
using System;
class Program
{
static void Main(string[] args)
{
byte n1 = 1; // liczba całkowita o najmniejszej pojemności
short n2 = 5; // liczba całkowita o małej pojemności
int n3 = 10; // liczba całkowita o większej pojemności
long n4 = 100; // liczba całkowita o największej pojemności
float m1 = 16.5f; // liczba zmiennoprzecinkowa jednoj precyzji
double m2 = 40.2; // liczba zmiennoprzecinkowa podwójnej precyzji
decimal m3 = 99.9m; // liczba zmiennoprzecinkowa o najwyższej dokładności
char znak = 'Z'; // bitowy znak z tablicy Unicode
bool cos = true; // typ logiczny prawda lub fałsz
}
}
Rozmiary i wartości typów
Typy | Rozmiar | Wartość |
---|---|---|
bool | 1bit | true or false |
sbyte | 8bit | -127 do 128 |
byte | 8bit | 0 do 256 |
short | 16bit | -32,768 do 32,767 |
ushort | 16bit | 0 do 65,535 |
char | 16bit | 0 do 65,535 |
int | 32bit | -2,147,483,648 do 2,147,483,647 |
uint | 32bit | 0 do 4,294,967,295 |
long | 64bit | -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807 |
ulong | 64bit | 0 do 18,446,744,073,709,551,615 |
float | 32bit | -3.402823e38 do 3.402823e38 |
double | 64bit | -1.79769313486232e308 do 1.79769313486232e308 |
decimal | 128bit | (-7.9 x 1028 do 7.9 x 1028) / 100 do 28 |
Notatka
Wartości typów wartościowych są przechowywane w stosie, co oznacza, że są bardziej efektywne od typów referencyjnych (reference types) i mają mniejsze zużycie pamięci.