C # ‘daki değişkenler aşağıdaki tiplere ayrılır –
- Değer Tipleri
- Referans Tipleri
- İşaretçi İşaretçi
C# Değer Tipleri
Değer türü değişkenlerine doğrudan bir değer atanabilir. “System.ValueType” sınıfından türetilirler.
Değer türleri doğrudan veri içerir. Bazı örnekler sırasıyla, sayıları, harfler ve ondalılıklı sayılarını depolayan int, char ve float’tır. Bir “int” tipi bildirdiğinizde, sistem veriyi depolamak için bellekten yer ayırır.
Aşağıdaki tablo C#’da kullanılabilir değer türlerini listeler.
Tip | Boyut | Aralık | Varsayılan Değer |
---|---|---|---|
bool | Boolean Değer | True yada False | False |
byte | 8-bit işaretsiz integer | 0 – 255 | 0 |
char | 16-bit Unicode karakter | U +0000 – U +ffff | ‘\0’ |
decimal | 128-bit ondalıklı değer 28-29 basamak | (-7.9 x 1028 – 7.9 x 1028) / 100to 28 | 0.0M |
double | 64-bit çift ondalıklı değer | (+/-)5.0 x 10-324 – (+/-)1.7 x 10308 | 0.0D |
float | 32-bit ondalıklı değer | -3.4 x 1038 – + 3.4 x 1038 | 0.0F |
int | 32-bit işaretli integer tip | -2,147,483,648 – 2,147,483,647 | 0 |
long | 64-bit işaretli integer tip | -9,223,372,036,854,775,808 – 9,223,372,036,854,775,807 | 0L |
sbyte | 8-bit işaretli integer tip | -128 – 127 | 0 |
short | 16-bit işaretli integer tip | -32,768 – 32,767 | 0 |
uint | 32-bit işaretsiz integer tip | 0 – 4,294,967,295 | 0 |
ulong | 64-bit işaretsiz integer tip | 0 – 18,446,744,073,709,551,615 | 0 |
ushort | 16-bit işaretsiz integer tip | 0 – 65,535 | 0 |
Belirli bir platformdaki bir türün veya bir değişkenin tam boyutunu elde etmek için sizeof yöntemini kullanabilirsiniz. “Sizeof (type)” ifadesi, nesnenin depolama boyutunu veya tür bayt cinsinden verir.
Aşağıda, herhangi bir makinede int türünün boyutunu almak için bir örnek verilmiştir:
1 2 3 4 5 6 7 8 9 10 11 12 | using System; namespace VeriTipiBoyut{ class Program { static void Main(string[] args) { Console.WriteLine("int boyutu: {0}", sizeof(int)); Console.ReadLine(); } } } |
C# Referans Tipleri
Referans türleri bir değişkende saklanan gerçek verileri içermez, ancak değişkenlere bir referans içerirler.
Başka bir deyişle, bir bellek konumuna başvururlar. Birden çok değişken kullanarak, referans türleri bir bellek konumuna başvurabilir. Hafızadaki veriler değişkenlerden biri tarafından değiştirilirse, diğer değişken otomatik olarak bu değişikliği değer olarak yansıtır.
Yerleşik referans türleri örneği: “object“, “dynamic” ve “string”
C# object Tipi
“Object” türü, C# Ortak Tip Sistemindeki (CTS) tüm veri türleri için en iyi temel sınıftır. Object, System.Object sınıfı için bir takma addır. Nesne tiplerine başka türlerin, değer tiplerinin, referans türlerinin, önceden tanımlanmış veya kullanıcı tanımlı tiplerin değerleri atanabilir. Bununla birlikte, değerleri atamadan önce, tür dönüşümü gerektirir.
Bir değer türü, nesne türüne dönüştürüldüğünde “boxing” olarak adlandırılır ve diğer yandan, bir nesne türü bir değer türüne dönüştürüldüğünde “unboxing” olarak adlandırılır.
1 2 3 4 | object obj; obj = 100; // boxing |
C# dynamic Tipi
Dinamik veri türü değişkeninde her türlü değeri saklayabilirsiniz. Bu değişken türlerini kontrol etme çalışma zamanında gerçekleşir.
Dinamik bir tür bildirmek için sözdizim:
1 2 3 | dynamic <degisken_adi> = degeri; |
Örnek:
1 2 3 4 | dynamic sayi; sayi = 100; |
Dinamik tipler, nesne tipi değişkenlerini kontrol etme türü derleme zamanında gerçekleşmesi dışında, dinamik tip değişkenlerin çalışma zamanında gerçekleşmesi dışında, nesne tiplerine benzerdir.
C# string Tipi
stirng tipi, bir değişkene herhangi bir string değeri atamanıza izin verir. string türü, System.String sınıfı için bir takma addır. Nesne tipinden türetilmiştir. Bir dize türü için değer, iki durumda dize değişmezleri kullanılarak atanabilir: tırnak işareti ve @tırnak işareti
Örnek:
1 2 3 4 5 | string str1 = "AlgoritmaOrnekleri.com"; // yada string str2 = @"AlgoritmaOrnekleri.com"; |
Kullanıcı tanımlı referans türleri şunlardır: class, interface ve delegate. Bu türleri daha sonra açıklayacağız.
C# Pointer Tipi (C# İşaretçi Tipi)
İşaretçi tipi değişkenleri başka bir türün hafıza adresini saklar. C# işaretçileri, C veya C ++ ‘daki işaretçilerle aynı özelliklere sahiptir.
İşaretçi türü bildirmek için sözdizimi:
1 2 3 | tip* tanimlayici; |
Örnek:
1 2 3 4 5 6 | int* sayiIsaret; //işaretçi (pointer) int a = 10; //int değer tipi sayiIsaret = &a; // işaretçiye adresin aktarılması |
Not: Pointer kullanımı güvenli olmadığı için proje ayarlarından unsafe modu aktifleştirmek gerekmektedir. Solution Exploerda proje üzerinde sağ tıklayıp properties bağlantısına tıklayın. Açılan panelden build sekmesinde unsafe modu aktifleştirin.
İşaretleyici türlerini ‘Güvensiz Kodlar’ bölümünde daha detaylı tartışacağız.
[…] Veri Tipleri […]
[…] Veri Tipleri […]