Tip Dönüşümleri

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

Bir değişken tanımlandığında, o değişkenin türü ve bu türe bağlı olarak bellekte ayrılacak yer 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 metotları kullanırız.

Mesela TextBox, Label ve benzeri bütün kontrollerin Text özellikleri string türünde kabul edilir. TextBox içindeki değeri sayısal bir değişkene direkt 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 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 sayısal 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 bir veri tipi 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 (Text özellikleri) 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.

Metni sayıya dönüştürmekten kastımız, rakamlardan oluşan bir metinsel veriyi, sayısal bir veriye çevirmektir. Yani dönüştürülmeye çalışılan metnin içinde rakam haricinde karakterler varsa hata oluşacaktır.

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.

https://www.btdersleri.com/ders/C-sharp-De%C4%9Fi%C5%9Fken-Tip-D%C3%B6n%C3%BC%C5%9F%C3%BCm%C3%BC

İbrahim Kahraman 640 A10/A

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...