Değişkenlerin tiplerini öğrenmek için GetType ve bu metodla birlikte TypeOf metodu kullanılabilir. GetType metodu ile direkt olarak değişkenin tipi öğrenilebilecekken, TypeOf metodu ile bir değişkenin belirtilen veri türüne ait olup olmadığı belirlenebilir.
1)GetType Metodu
Herhangi bir değişkenin tipini öğrenebilmek için GetType metodundan faydalanılır. GetType metodunun ürettiği değer Type türünden olduğu için herhangi bir string değişkene aktarılamaz. ToString( ) metodu kullanılarak string türüne dönüştürüldükten sonra kullanılabilir.
Konu ile ilgili bir örnek uygulama yapalım. Örneğimizde değişkenlerin tipini belirtmeden değer ataması yapalım. Değişkenlere içerdikleri değerlere C# tarafından otomatik olarak tip ataması yapılmaktadır. GetType metodu ile bu değişkenin tipini öğrenerek ToString metodu üretilen değeri string değere dönüştürüp mesaj penceresi içerisinde görüntüleyeceğiz.
Örneğimizin kodu aşağıdaki gibi olacak;
private void btnDegiskenTipi_Click(object sender, EventArgs e)
{
var isim = "Sümeyye AKTAŞ";
MessageBox.Show (isim.GetType().ToString() );
var yas = 5;
MessageBox.Show(yas.GetType().ToString());
var ondalık_sayı = 12.4;
MessageBox.Show(ondalık_sayı.GetType().ToString());
var mantıksal_degisken = true;
MessageBox.Show(mantıksal_degisken.GetType().ToString());
}
Kodumuzu çalıştırdığımızda mesaj penceresi içerisinde sıra ile
System.String
System.Int32
System.Double
System.Boolean
İfadelerinin görüntülendiğini görürüz.
2) TypeOf Metodu
Herhangi bir değişkenin tipinin bir değişken türüne ait olup olmadığını anlamak amacı ile TypeOf metodundan faydalanılır.
Konu ile ilgili bir örnek uygulama yapalım.
private void Form1_Load(object sender, EventArgs e)
{
var ondalık_sayı = 12.4;
if (ondalık_sayı.GetType() == typeof(byte))
{
MessageBox.Show ("Değişken türü byte");
}
else
{
MessageBox.Show("Değişken türü byte değil");
}
}
Örneğimizde ondalık_sayı isimli değişkenin içeriğinin byte türü olup olmadığını typeof(byte) metodu ile kontrol etmekteyiz. Atanan değer ondalık sayı olduğundan dolayı değişkenin türü double olacaktır. Dolayısı ile kodumuzu çalıştırdığımızda "Değişken türü byte değil" sonucunu görüntüleyecektir.