C# Değişken Tip Dönüşümü


Twitter'da Paylaş Favorilerime Ekle

DEĞİŞKEN TİP DÖNÜŞÜMÜ

Bir değişken tanımlandığında, bellekte ona ayrılan bölgenin türü de belirlenir. Bu nedenle o değişkene farklı türde değer atanması hataya neden olur.

Farklı türdeki değişkenler arasında işlem yapacaksak, değişken dönüşüm işlemi yapmamız gerekir. Değişkenleri dönüştürmek için hazır fonksiyonları kullanırız.

Mesela TextBox, Label gibi kontrollerin Text özellikleri string kabul edilir. TextBox içindeki değeri sayısal bir değişkene direk olarak atayamayız çünkü değişkenin türü ile atanmaya çalışan verinin türü farklıdır. Aynı şekilde sayısal bir değişkeni Label içine direk olarak yazdıramayız. Böyle durumlarda değişken dönüşümü yapmamız gerekir.

Değişken dönüşümü işlemlerini ikiye ayırabiliriz: Açık ve kapalı dönüşüm.

1- Kapalı Dönüşüm:

Küçük tipteki değişkenlerin değerini, daha büyük tipteki değişkenlere verirken sorun çıkmayacaktır. Burada dönüşüm işlemini program kendisi yapacaktır. Örneğin byte türündeki bir değişkenin sakladığı değer, int tipindeki bir değişkene verilebilir. Çünkü int tipi daha büyük olduğundan, byte tipindeki veriyi de saklayabilecektir.

Short a=245;

int b;

b = a;

Bu örnek sorunsuz çalışır çünkü a değişkeninin türü short, b değişkeninin türünden daha küçüktür.

Float a;

İnt b;

a=b;

Bu örnek de sorunsuz çalışır, çünkü float tipi int tipine göre daha büyük sayıları saklayabilecektir.

Ancak aşağıdaki gibi bir kullanım hataya neden olur. Çünkü short türündeki bir değişkene, int tipinde yani daha büyük bir değişkenin değeri verilmeye çalışılmıştır.

Int a=245;

Short b;

b = a;

Aşağıdaki örnekte farklı tiplerde değişkenler tanımlanmış ve birbirlerine dönüştürülmek istenmiştir. Hangilerinin çalışıp, hangilerinin çalışmayacağı da belirtilmiştir.

byte a;

short b;

int c;

long d;

float x;

 

a=b; (Hata)

b=a; (Çalışır)

c=b; (Çalışır)

c=d; (Hata)

d=c(Çalışır)

d=x; (Hata)

x=d; (Çalışır)

2- Açık Dönüşüm:

Bu yöntemde dönüşüm işlemini bizim gerçekleştirmemiz gerekmektedir. Bunun için de yerine göre farklı yöntemler kullanılmaktadır.

Mesela Label ve textBox gibi kontrollerin değerleri her zaman string kabul edilir. Dolayısıyla bu kontrollere değer verilirken ya da bu kontrollerden değer alınırken dönüşüm işlemi yapmak gerekir.

a- Convert metodu:

int a;

a= Convert.toInt32(TextBox1.Text);

Bu örnekte metin kutusundaki değeri, integere çevrilerek a değişkenine aldık.
 

int ort=53;

Label1.Text=Convert.toString(ort);

Bu örnekte ise ort değişkenindeki değeri stringe çevirerek label1 içerisine yazdık.

b- Parse metodu:

String türündeki değerleri sayı türündeki değerlere çevirmekte kullanılır. Mesela bir form elemanındaki değeri bir değişkene alırken kullanılabilecek yöntemlerden biri de budur.

int a;

a= int.Parse(textBox1.Text);

long b = long.Parse(textBox2.Text);

c- toString() metodu:

Sayı ya da farklı tipteki değişkenleri, string tipine çevirebilen bir metottur. Bu yöntemle sadece string tipine dönüşüm yapılabilir.

int b = 100;

label6.Text = b.ToString();

b değişkenini string tipine çevirdik ve label'e yazdık.

label7.Text = comboBox1.SelectedItem.ToString();

combobox kontrolünün seçili elemanını string tipine çevirdik ve label'e yazdık.

d- Cast işlemi:

Bazı durumlarda bu yöntem kullanılabilmektedir. Örneğin object tipindeki değişken veya elemanları diğer tiplere çevirebilir. Aynı zamanda double tipini int tipine çevirebilir, yani sayılar arasında dönüşüm  yapabilir. Ama bir string tipini, int tipine ya da int tipini string tipine çeviremez.

Double sayi = 6.789;

int a;

a = (int)sayi;

Bu örnekte double tipindeki sayi değişkenini, int tipine çevirdik.

Label8.Text = (string)ComboBox1.SelectedItem;

Bu örnekte combobox kontrolünün seçili elemanını stringe çevirdik. Yani object tipini, string tipine çevirmiş olduk.

c# değişkeni label yazdırma, kutudaki sayıyı değişkene alma, değişken dönüşümü, veri tip dönüşümü, nasıl yapılır, c# convert örnekleri, int.parse nedir