C# dilinde veri tipleri, bir değişkenin bellekte nasıl depolanacağını, ne tür bir veri tutacağını ve üzerinde hangi işlemlerin yapılabileceğini belirler. Veri tipleri, değer tipleri (Value Types) ve referans tipleri (Reference Types) olmak üzere iki ana gruba ayrılır.
Bu bölümde C# veri tiplerini detaylı bir şekilde inceleyecek, örneklerle açıklayacak ve Visual Studio Code (VS Code) üzerinde kullanımına dair bilgiler sunacağız.
1. Değer Tipleri (Value Types)
Değer tipleri doğrudan veriyi bellekte tutar ve stack (yığın) bellekte saklanır. İşte en yaygın kullanılan değer tipleri:
Veri Tipi | Açıklama | Bellek Alanı | Örnek |
---|---|---|---|
byte | 0-255 arası tam sayılar | 1 byte | byte x = 200; |
sbyte | -128 ile 127 arası tam sayılar | 1 byte | sbyte x = -50; |
short | -32,768 ile 32,767 arası tam sayılar | 2 byte | short x = 15000; |
ushort | 0 ile 65,535 arası tam sayılar | 2 byte | ushort x = 40000; |
int | -2,147,483,648 ile 2,147,483,647 | 4 byte | int x = 100000; |
uint | 0 ile 4,294,967,295 | 4 byte | uint x = 300000; |
long | Çok büyük tam sayılar | 8 byte | long x = 1000000000; |
ulong | Pozitif uzun tam sayılar | 8 byte | ulong x = 5000000000; |
float | Ondalıklı küçük sayılar | 4 byte | float x = 3.14f; |
double | Ondalıklı daha büyük sayılar | 8 byte | double x = 3.14159; |
decimal | Yüksek hassasiyetli sayılar | 16 byte | decimal x = 3.141592653m; |
char | Tek bir karakter tutar | 2 byte | char x = 'A'; |
bool | Doğru (true) veya yanlış (false) | 1 byte | bool x = true; |
Örnek Kullanım:
int sayi = 25;
float pi = 3.14f;
bool durum = true;
Console.WriteLine($"Sayı: {sayi}, Pi: {pi}, Durum: {durum}");
2. Referans Tipleri (Reference Types)
Referans tipleri, bellekteki adresi işaret eder ve heap bellekte saklanır. En yaygın kullanılan referans tipleri şunlardır:
Veri Tipi | Açıklama | Örnek |
---|---|---|
string | Metin değerlerini tutar | string ad = "Ali"; |
object | Tüm veri tiplerinin temeli | object veri = 123; |
array | Aynı türde veri dizisi | int[] sayilar = {1, 2, 3}; |
class | Özel nesne yapıları oluşturur | class Ogrenci { ... } |
Örnek Kullanım:
string isim = "Ahmet"; // Değer Çift Tırnak arasında olmalıdır.
object veri = 42; // Tüm türlerin temelidir
int[] sayilar = { 10, 20, 30 };
Console.WriteLine($"Ad: {isim}, İlk Sayı: {sayilar[0]}");
3. Nullable Veri Tipleri
Bazı durumlarda değişkenlere null
(değer yok) atanabilir. Bunun için ?
işareti kullanılır.
int? sayi = null; // Null atanabilir bir tam sayı
sayi = 10; // Değer atanabilir
Console.WriteLine(sayi.HasValue ? sayi.ToString() : "Değer yok");
4. Var ve Dynamic
Var:
- Derleme zamanında değişken türünü otomatik belirler.
- Türü değiştirilemez.
var isim = "Ahmet"; // string olarak algılanır
var yas = 25; // int olarak algılanır
Dynamic:
- Çalışma zamanında türü belirlenir.
- Türü değişebilir.
dynamic veri = 10; // Türü int
veri = "Metin"; // Türü string oldu