Nesne yönelimli programlama (OOP) dillerinde kullanılan değişkenler ile işlem yapılırken sıkça kullanılan yöntemlerin başında değişken dönüşümü yer almaktadır. Değişken dönüşümünün diğer bir adı da tip dönüşümü olmaktadır. Bu kavram tanımlanan değişkenlerin tipine göre uygulanmaktadır.
Teorik olarak anlatmak gerekirse "int" tipinde tanımlanan değişken; çıktı olarak mesaj verilmek istendiğinde "string" veri tipine dönüştürülmesi gerekmektedir. Bunun nedeni kod içerisinde tanımlanan değişken sayısal bir değer tutmakta ve binary kod olarak algılanmaktadır. Ancak mesaj olarak verilmek istendiğinde yazı olarak kabul görmektedir. Dönüşüm yapıldığında sayısal değer; sadece çıktı için yazı değeri taşımaya başlar.Kısa bir açıklamadan sonra daha iyi anlamak için form uygulamasında küçük bir örnek verirsek:
namespace bsOrnek
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int sayi = 34;
MessageBox.Show(Convert.ToString(sayi));
}
}
}
Yukarıdaki örnek kodda form uygulaması üzerine bir adet "button" nesnesi yerleştirdik ve bu nesnenin tıklandığı zaman yapacağı işlevi belirledik. Burada "private void button1_Click(object sender, EventArgs e)" satırı; .Net framework içinde tanımlı button tıklama olayını yöneten bir fonksiyondur. Bizim asıl konumuz olan değişken dönüşümü ise bu fonksiyon içerisinde uygulanmaktadır. Görüldüğü gibi integer tipinde "sayi" adlı bir değişken tanımladık ve değer olarak "34" değerini atadık. ArdındanMessageBox nesnesinin Show metodu ile ekrana mesaj kutusu içerisinde sayi değişkenimizin tuttuğu sayısal değeri yazdırdık. Bunu ise mesaj kutusu nesnesinin içinde sayi değişkenini "Conver.ToString" yani string veri tipine dönüştür diyerek yaptık. Kodları derlediğimizde ekran çıktısı olarak şunu görmekteyiz:
Bunun tam tersini de yapmak mümkündür. Örnek olarak:
namespace bsOrnek
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int sayi;
string yazi;
yazi = textBox1.Text;
sayi = Convert.ToInt32(yazi);
MessageBox.Show(Convert.ToString(sayi));
}
}
}
Bu örnekte yine buttonun tıklanmasına bağlı çıktı almaktayız. Ek olarak formumuza bir de "textbox" nesnesi eklemiş bulunmaktayız. Bu nesne kullanıcıdan veri almak için kullanılan bir yapıdır. Kodumuzda ise yine "int" tipinde "sayi" değişkenimiz bulunmaktadır. Buna ek olarak "string" tipinde "yazi" değişkeni tanımladık ve bu değişkenimize "textbox" içerisine yazılan değeri atadık.
Yazi değişkeni de textbox içerisine yazılan değer de string olarak algılandığı için burada değişken dönüşümü yapma gereği duyulmadı. Fakat bir alt satırda yazılan kodda yazi değişkenini sayi değişkenine atamak istediğimizde farklı tiplerde oldukları için birini diğerine benzetmemiz gerekti. Hangi değişkene atama yapılıyorsa diğer tipdeki değişken ona dönüştürülerek kullanılır. Son satırda da bir önceki örneğimizdeki gibi mesaj kutusu ile "sayi" değişkenindeki değeri çıktı olarak veriyoruz. Tabii burada sayi değişkenimiz önceki örnekten farklı olarak textbox içerisine hangi değer yazıldı ise onu tutmaktadır. Ekran çıktısı aşağıdaki gibidir :