C#.Net ile Convert İşlemleri
Yeniden merhaba yazılımcı meslektaşlarım :)
Bugün değişken dönüşümlerine başlıyoruz ve ilk görsel programımızı yazmaya başlıyoruz.
Bir önceki makalemde değişkenleri anlatmıştım ve bu makalemizde iste değişkenleri kendi aralarında pratik bir şekilde nasıl dönüştüreceğimizi öğreneceğiz.Aslına bakarsanız bu konu çok önemli bir konu ve bundan sonraki yazılımcılık hayatınızda bol bol kullanacağınız basit ve eğlenceli bir konudur,o yüzden zorlanacağınızı sanmıyorum :)
Şimdi hiç hız kesmeden Visual Studio IDE'mizi açalım ve .Net Framework 4.0 ile C# dilinde bir Windows Form uygulaması oluşturalım ve proje adına "ConvertApp" yazarak projeyi başlatalım.
Visual Studio'muzu açtığımıza göre sol penceremizdeki Toolbox ile sağdaki Properties penceremizi toplu iğne logosuna tıklayarak sabitleyelim ve aşağıdaki gibi ekranımızı hazır hale getirelim:
Şimdi soldaki toolbox penceresi içindeki "Common Controls" kategorisi altındaki "Textbox" ı mouse imleçimiz ile tutup form üzerine bırakalım.
Ayrıca arka planına kod yazacağımız bir butona ihtiyacımız olacak ve yine aynı pencereden "Button" u mouse ile sürükleyip form üzerine bırakalım.
Artık formumuzun şekli şöyle olacaktır:
Şimdi ise yazılımcılık kuralları gereği kontrollerimize isimlendirme uygulayacağız.
Öncelikle textboxımızın üzerine bir kez tek tıklayarak sağdaki properties penceresinin değiştiğini görelim.Ardından yine properties penceresindeki "Name" özelliğine "txtYazi" yazalım ve enter tuşuna basalım.
Aynı işlemi butonumuz için yapalım ve "Name" özelliğine "btnGoster" yazalım.
Bir de butonumuzun üzerindeki yazıyı değiştirmek için butonumuz seçiliyken properties penceresinden "Text" özelliğine "Göster Yazalım".
Şimdi butonumuza çift tıklayalım ve kod kısmına geçelim,artık işimiz kodlarla :)
Bir önceki makalemde değişken tiplerinden bahsetmiştim,bu değişkenleri kendi aralarında dönüştürmek için yani convert edebilmenin iki yolu vardır:bunlardan birisi bilinçli yani "casting" yolu ile,ikincisi ise bilinçsiz yani bildiğimiz convert yolu ile dönüştürebiliyoruz.Ancak casting güvenli bir yöntem olmadığı için işimizi convert ile gerçekleştireceğiz.
Öncelikle btnGoster'in kod bloğu içerisine ("{" ve "}" arasında kalan satır) şöyle yazalım;
burada "txtYazi" isimli kontrolümüz olan textboxımızı kullanıyoru demektir,ardından txtYazi'nin sonuna bir nokta işareti koyalım ve intellisensi açarak "Text" özelliğini seçelim.
Burada ise txtYazi'nin içine yazılan metnini kullanmak istediğimizi ifade ediyoruz.
Devam edelim ve bu yazıyı bir değişkene atalım,mesela string değişken tipini kullanalım ve "yazi" tanımlaması yapalım ve sonuna noktalı virgül koymayı unutmayalım.
Şu anda genel olarak kod ekranımızda şu satırlar yer alacaktır:
ve bu "yazi" isimli değişkenimizi bir yerde kullanalım mesela MessageBox'ta kullanalım ama artık "Merhaba Dünya" yazmak yerine biz textboxımıza ne yazarsak onu yazsın:
Şimdi F5'e basarak programımızı çalıştıralım,eğer program çalışırken hata veriyorsa kodları yanlış ya da eksik yazmış olmalısınız kontrol edin derim ;)
Program açıldığına göre textboxmıza istediğimiz herhangi birşey yazalım,ben "selam serkan" diyorum,artık siz ne isterseniz onu yazabilirsiniz.
Yeni ekran görüntümüz aynen şöyle olacaktır:
Gördüğünüz gibi artık textboxa ne yazarsak program bize onu gösterecek.
Ancak halen herhangi bir değişken dönüşümü uygulamadık,şimdi ise tamama tıklayalım ve programı kapatalım.
Kod satırlarının başına // yazarak yukarıdaki gibi yorum satırı haline getirelim ve aşağıdaki gibi tekrar yazalım:
Aradaki tek fark artık textboxtan gelen yazıyı sayıya dönüştürmek ve tekrar programı çalıştıralım.Gördüğünüz gibi şöyle bir hata alıyorsunuz:
Bunun nedeni txtYazi controlümüzün Text özelliğinin string tipini döndürdüğü ve int tipine atanamamasıdır.
Peki ekranda sayı gösteremeyecek miyiz?
Tabi ki gösterebiliyoruz işte tam bu noktada imdadımıza değişken dönüşümleri geliyor.
C# ta ilk değişken dönüşümümüz şöyle olacaktır;
Burada (Convert.ToInt32) deyimi txtYazinin metni int tipindeki bir sayıdır anlamına geliyor ve bu şekilde yazınca hata ortadan kalkıyor.Tabi MessageBox hatası henüz gitmedi ona da gelicem birazdan :)
Bir kontrole runtime (çalışma anı) zamanında yazılan değeri bir sayısal değişkene atarken bu şekil dışında javacıların bildiği Parse ile de gerçekleştirebiliriz,yani yukarıdaki kod ile
kodları aynı işlevi görmektedir,tabi benim kişisel tavsiyem "Convert.ToInt32"yi kullanmanızdır.
Bu kısmı anladığımıza göre (umarım anladık :) ) şimdi MessageBox sorunumuza geçelim;aynı kod üzerinde MessageBox kod satırını silelim ve tekrar yazıyoruz.
yazıp parantezi açtığımız anda "Show" metodunun açılan intellisense'te ilk parametresinin "string text" yazıldığını görüyoruz ve diyoruz ki:
"heee demek ki MessageBox sadece string tipinde değişkenleri veya yazıları kabul ediyor".
Yani int tipindeki değişkenimizi tekrar stringe çevirmemiz gerekiyor.
Yani yazacağımız kod
olmalı veya
ile aynı işlevi sağlayabiliriz.Dikkat edersek ikinci değişken convert işlemini bu defa MessageBox.Show içerisinde gerçekleştirdik.Bu demek oluyor ki bir değişkeni stringe dönüştürmenin diğer kolay bir yolu sonuna ".ToString();" yazmak yeterli oluyor.
Mesela aynı yöntemi şöyle de kullanabiliriz:
gördüğünüz gibi stringi dönüştürmek bu şekilde de yapılabiliniyor.
Birkaç farklı deneme ile farklı değişken dönüşümleri uygulayarak konuda uzmanlığınızı artırabilirsiniz :)
Şimdi bir bakalım sayıları
şeklinde yazıp programı çalıştırdığımızda ekran çıktımız nasıl görünüyor:
Buradaki mantık aslında şudur;
txtYaziya yazılan sayıyı "yazi" isimli değişkene int tipinde yükle,ardından "yazi" isimdeki değişkeni string tipine dönüştür ve MessageBox ın Show metoduna parametre olarak ver.
Şimdi,
satırlarını yorum satırı haline getirelim ve birde ondalık sayı dönüşümü örneği yapalım;
gördüğünüz gibi bu defa textboxımızdan gelen yazıyı double ondalık cinsine yazıyor ve tekrar daha sonra mesaj kutumuza string şeklinde dönüştürerek yazıyoruz.
Değişken dönüşümleri işte bu şekilde kolay bir konu,ancak ilk başlarda biraz zorlanabilirsiniz bu gayet doğal bir durum.Yeter ki moraliniz bozup pes etmeyin,daha öncede dediğim gibi bu makalede öğrenecekleriniz çok kısa bir zamanda çocuk oyuncağı gibi gelecek size :)
Şimdilik makalenin sonuna geldik,bir sonraki yazımızda operatörlere başlayıp basit bir hesap makinesi yapıyor olacağız.
Sonraki makalemde görüşünceye dek bol bol uğraşın kurcalayın bu konuyu ve kendinize iyi bakın.
Hoşçakalın :)
Projeyi İndirme Linki: https://www.serkanayyildiz.com/images/uploaded/01.02.2013-22-16-35/ConvertApp.rar.rar
Bugün değişken dönüşümlerine başlıyoruz ve ilk görsel programımızı yazmaya başlıyoruz.
Bir önceki makalemde değişkenleri anlatmıştım ve bu makalemizde iste değişkenleri kendi aralarında pratik bir şekilde nasıl dönüştüreceğimizi öğreneceğiz.Aslına bakarsanız bu konu çok önemli bir konu ve bundan sonraki yazılımcılık hayatınızda bol bol kullanacağınız basit ve eğlenceli bir konudur,o yüzden zorlanacağınızı sanmıyorum :)
Şimdi hiç hız kesmeden Visual Studio IDE'mizi açalım ve .Net Framework 4.0 ile C# dilinde bir Windows Form uygulaması oluşturalım ve proje adına "ConvertApp" yazarak projeyi başlatalım.
Visual Studio'muzu açtığımıza göre sol penceremizdeki Toolbox ile sağdaki Properties penceremizi toplu iğne logosuna tıklayarak sabitleyelim ve aşağıdaki gibi ekranımızı hazır hale getirelim:
Şimdi soldaki toolbox penceresi içindeki "Common Controls" kategorisi altındaki "Textbox" ı mouse imleçimiz ile tutup form üzerine bırakalım.
Ayrıca arka planına kod yazacağımız bir butona ihtiyacımız olacak ve yine aynı pencereden "Button" u mouse ile sürükleyip form üzerine bırakalım.
Artık formumuzun şekli şöyle olacaktır:
Şimdi ise yazılımcılık kuralları gereği kontrollerimize isimlendirme uygulayacağız.
Öncelikle textboxımızın üzerine bir kez tek tıklayarak sağdaki properties penceresinin değiştiğini görelim.Ardından yine properties penceresindeki "Name" özelliğine "txtYazi" yazalım ve enter tuşuna basalım.
Aynı işlemi butonumuz için yapalım ve "Name" özelliğine "btnGoster" yazalım.
Bir de butonumuzun üzerindeki yazıyı değiştirmek için butonumuz seçiliyken properties penceresinden "Text" özelliğine "Göster Yazalım".
Şimdi butonumuza çift tıklayalım ve kod kısmına geçelim,artık işimiz kodlarla :)
Bir önceki makalemde değişken tiplerinden bahsetmiştim,bu değişkenleri kendi aralarında dönüştürmek için yani convert edebilmenin iki yolu vardır:bunlardan birisi bilinçli yani "casting" yolu ile,ikincisi ise bilinçsiz yani bildiğimiz convert yolu ile dönüştürebiliyoruz.Ancak casting güvenli bir yöntem olmadığı için işimizi convert ile gerçekleştireceğiz.
Öncelikle btnGoster'in kod bloğu içerisine ("{" ve "}" arasında kalan satır) şöyle yazalım;
burada "txtYazi" isimli kontrolümüz olan textboxımızı kullanıyoru demektir,ardından txtYazi'nin sonuna bir nokta işareti koyalım ve intellisensi açarak "Text" özelliğini seçelim.
Burada ise txtYazi'nin içine yazılan metnini kullanmak istediğimizi ifade ediyoruz.
Devam edelim ve bu yazıyı bir değişkene atalım,mesela string değişken tipini kullanalım ve "yazi" tanımlaması yapalım ve sonuna noktalı virgül koymayı unutmayalım.
Şu anda genel olarak kod ekranımızda şu satırlar yer alacaktır:
ve bu "yazi" isimli değişkenimizi bir yerde kullanalım mesela MessageBox'ta kullanalım ama artık "Merhaba Dünya" yazmak yerine biz textboxımıza ne yazarsak onu yazsın:
Şimdi F5'e basarak programımızı çalıştıralım,eğer program çalışırken hata veriyorsa kodları yanlış ya da eksik yazmış olmalısınız kontrol edin derim ;)
Program açıldığına göre textboxmıza istediğimiz herhangi birşey yazalım,ben "selam serkan" diyorum,artık siz ne isterseniz onu yazabilirsiniz.
Yeni ekran görüntümüz aynen şöyle olacaktır:
Gördüğünüz gibi artık textboxa ne yazarsak program bize onu gösterecek.
Ancak halen herhangi bir değişken dönüşümü uygulamadık,şimdi ise tamama tıklayalım ve programı kapatalım.
Kod satırlarının başına // yazarak yukarıdaki gibi yorum satırı haline getirelim ve aşağıdaki gibi tekrar yazalım:
Aradaki tek fark artık textboxtan gelen yazıyı sayıya dönüştürmek ve tekrar programı çalıştıralım.Gördüğünüz gibi şöyle bir hata alıyorsunuz:
Bunun nedeni txtYazi controlümüzün Text özelliğinin string tipini döndürdüğü ve int tipine atanamamasıdır.
Peki ekranda sayı gösteremeyecek miyiz?
Tabi ki gösterebiliyoruz işte tam bu noktada imdadımıza değişken dönüşümleri geliyor.
C# ta ilk değişken dönüşümümüz şöyle olacaktır;
Burada (Convert.ToInt32) deyimi txtYazinin metni int tipindeki bir sayıdır anlamına geliyor ve bu şekilde yazınca hata ortadan kalkıyor.Tabi MessageBox hatası henüz gitmedi ona da gelicem birazdan :)
Bir kontrole runtime (çalışma anı) zamanında yazılan değeri bir sayısal değişkene atarken bu şekil dışında javacıların bildiği Parse ile de gerçekleştirebiliriz,yani yukarıdaki kod ile
kodları aynı işlevi görmektedir,tabi benim kişisel tavsiyem "Convert.ToInt32"yi kullanmanızdır.
Bu kısmı anladığımıza göre (umarım anladık :) ) şimdi MessageBox sorunumuza geçelim;aynı kod üzerinde MessageBox kod satırını silelim ve tekrar yazıyoruz.
yazıp parantezi açtığımız anda "Show" metodunun açılan intellisense'te ilk parametresinin "string text" yazıldığını görüyoruz ve diyoruz ki:
"heee demek ki MessageBox sadece string tipinde değişkenleri veya yazıları kabul ediyor".
Yani int tipindeki değişkenimizi tekrar stringe çevirmemiz gerekiyor.
Yani yazacağımız kod
olmalı veya
ile aynı işlevi sağlayabiliriz.Dikkat edersek ikinci değişken convert işlemini bu defa MessageBox.Show içerisinde gerçekleştirdik.Bu demek oluyor ki bir değişkeni stringe dönüştürmenin diğer kolay bir yolu sonuna ".ToString();" yazmak yeterli oluyor.
Mesela aynı yöntemi şöyle de kullanabiliriz:
gördüğünüz gibi stringi dönüştürmek bu şekilde de yapılabiliniyor.
Birkaç farklı deneme ile farklı değişken dönüşümleri uygulayarak konuda uzmanlığınızı artırabilirsiniz :)
Şimdi bir bakalım sayıları
şeklinde yazıp programı çalıştırdığımızda ekran çıktımız nasıl görünüyor:
Buradaki mantık aslında şudur;
txtYaziya yazılan sayıyı "yazi" isimli değişkene int tipinde yükle,ardından "yazi" isimdeki değişkeni string tipine dönüştür ve MessageBox ın Show metoduna parametre olarak ver.
Şimdi,
satırlarını yorum satırı haline getirelim ve birde ondalık sayı dönüşümü örneği yapalım;
gördüğünüz gibi bu defa textboxımızdan gelen yazıyı double ondalık cinsine yazıyor ve tekrar daha sonra mesaj kutumuza string şeklinde dönüştürerek yazıyoruz.
Değişken dönüşümleri işte bu şekilde kolay bir konu,ancak ilk başlarda biraz zorlanabilirsiniz bu gayet doğal bir durum.Yeter ki moraliniz bozup pes etmeyin,daha öncede dediğim gibi bu makalede öğrenecekleriniz çok kısa bir zamanda çocuk oyuncağı gibi gelecek size :)
Şimdilik makalenin sonuna geldik,bir sonraki yazımızda operatörlere başlayıp basit bir hesap makinesi yapıyor olacağız.
Sonraki makalemde görüşünceye dek bol bol uğraşın kurcalayın bu konuyu ve kendinize iyi bakın.
Hoşçakalın :)
Projeyi İndirme Linki: https://www.serkanayyildiz.com/images/uploaded/01.02.2013-22-16-35/ConvertApp.rar.rar
Selam Serkan ben şuan yazılım kursuna başladım Bilge Adam ama senin kadar açıklayıcı anlatamadılar bende yazılımcı olmak istiyorum yazılımla ilgili pek bilgim yok sıfırdan başladım. Anladığım kadarıyla sende böyle başlamışsın ve başarmışsın bu konuda yardımlarını istesem bana yardımcı olurmusun. iyi akşamar...
Sn.Burak Orhan, Umarım siz de mezun olduktan sonra başarılı bir yazılım uzmanı olur ve bu konuda yardıma ihtiyaç duyduğunuz anda iletişim bilgilerimden bana ulaşabilirsiniz.