Visual Basic Casting İşlemleri
Visual Basic meraklılarına yeniden selamlar :)
Önceki makalelerimizde programlamanın temelleri konusunda sürekli yeni konular öğrenmiştik ve bu makalemi yazarken
artık orta seviyeye giriş için makale yazarken sizlere "casting" konusunda küçük bir makale yazayım istedim.
Casting'i Türkçe'ye çevirmek gerekirse daha doğrusu yazılımcıların anlayacağı bir dile çevirmek gerekirse "benzetme"
olarak belirtebiliriz,peki bu benzetme nedir?
Benzetme konusuna girmeden önce .Net mimarisinin (hatta java bile) System.Object sınıfından türediğini bir kenara
yazmalıyız çünkü nesne tabanlı programlama dillerinin "nesne" den kastı herşeyin object dediğimiz sınıftan türemesinden
kaynaklanmaktadır.Dolayısıyla tüm mimarinin temeli nesneye dayandığından herhangi bir değeri object olarak tanımlamak
yanlış olmayacaktır.
Daha basit bir şekilde anlamanız için şu iki kod satırına dikkat edin:
Dim dil As String = "VB.Net"
Dim kod As Object = "Visual Basic"
İlk kod satırında bildiğimiz şekilde değerin tipini string olarak ifade ettik ancak ikinci satırda ise string belirtmek gerekirken object olarak tanımladık.Bu kullanıma yanlış denilemez çünkü bütün değer tipleri mimarinin object tipine dayanmasından kaynaklanmaktadır,dolayısıyla böyle bir yazım sonrasında derleyici hata vermemektedir.
Örneğin ikinci satırda object tipindeki değeri ekrana yansıtmak istesek
MessageBox.Show(kod)
şeklinde yazdığımızda derleyicinin object tipini otomatik olarak string ifadeye çevirdiğini görebiliyoruz.
Buraya kadar aklınızda şöyle bir soru takılabilir: madem object değer tipiyle tanımlama gerçekleştirebiliyorduk peki ne diye
int,string gibi diğer veri türleriyle uğraştık?
Bu sorunun cevabını şöyle verebilirim: object mimarinin en temel yapı taşıdır ve doğal olarak .Net Framework mimarisinin
getirdiği tüm yenilikleri bünyesinde barındıramaz çünkü hiyerarşinin en altında yer alır.Hal böyle olunca değer atamalarını
object yerine yapmak yerine en uygun ilkel veri tiplerinden biriyle kullanmak en akıllıcası olacaktır.
Casting konusunu kavradıktan sonra ise bilmemiz gereken bir konu ise boxing (kutulama) ve unboxing (kutu dışına çıkarma) konularıdır ve casting konusuna oldukça benzemektedir.Tabi bu konuları C# makalemin altında yazdığımı için yeniden yazmaya üşeniyorum o yüzden buradaki makaleyi okumanızı rica eder ve bu öğrendiğimiz bilgilerin faydalı olacağını umuyorum :)
Bir sonraki makalemizde görüşmek üzere hoşçakalın ama bahsettiğim C# makalesini okumayı unutmayın derim :)
Önceki makalelerimizde programlamanın temelleri konusunda sürekli yeni konular öğrenmiştik ve bu makalemi yazarken
artık orta seviyeye giriş için makale yazarken sizlere "casting" konusunda küçük bir makale yazayım istedim.
Casting'i Türkçe'ye çevirmek gerekirse daha doğrusu yazılımcıların anlayacağı bir dile çevirmek gerekirse "benzetme"
olarak belirtebiliriz,peki bu benzetme nedir?
Benzetme konusuna girmeden önce .Net mimarisinin (hatta java bile) System.Object sınıfından türediğini bir kenara
yazmalıyız çünkü nesne tabanlı programlama dillerinin "nesne" den kastı herşeyin object dediğimiz sınıftan türemesinden
kaynaklanmaktadır.Dolayısıyla tüm mimarinin temeli nesneye dayandığından herhangi bir değeri object olarak tanımlamak
yanlış olmayacaktır.
Daha basit bir şekilde anlamanız için şu iki kod satırına dikkat edin:
Dim dil As String = "VB.Net"
Dim kod As Object = "Visual Basic"
İlk kod satırında bildiğimiz şekilde değerin tipini string olarak ifade ettik ancak ikinci satırda ise string belirtmek gerekirken object olarak tanımladık.Bu kullanıma yanlış denilemez çünkü bütün değer tipleri mimarinin object tipine dayanmasından kaynaklanmaktadır,dolayısıyla böyle bir yazım sonrasında derleyici hata vermemektedir.
Örneğin ikinci satırda object tipindeki değeri ekrana yansıtmak istesek
MessageBox.Show(kod)
şeklinde yazdığımızda derleyicinin object tipini otomatik olarak string ifadeye çevirdiğini görebiliyoruz.
Buraya kadar aklınızda şöyle bir soru takılabilir: madem object değer tipiyle tanımlama gerçekleştirebiliyorduk peki ne diye
int,string gibi diğer veri türleriyle uğraştık?
Bu sorunun cevabını şöyle verebilirim: object mimarinin en temel yapı taşıdır ve doğal olarak .Net Framework mimarisinin
getirdiği tüm yenilikleri bünyesinde barındıramaz çünkü hiyerarşinin en altında yer alır.Hal böyle olunca değer atamalarını
object yerine yapmak yerine en uygun ilkel veri tiplerinden biriyle kullanmak en akıllıcası olacaktır.
Casting konusunu kavradıktan sonra ise bilmemiz gereken bir konu ise boxing (kutulama) ve unboxing (kutu dışına çıkarma) konularıdır ve casting konusuna oldukça benzemektedir.Tabi bu konuları C# makalemin altında yazdığımı için yeniden yazmaya üşeniyorum o yüzden buradaki makaleyi okumanızı rica eder ve bu öğrendiğimiz bilgilerin faydalı olacağını umuyorum :)
Bir sonraki makalemizde görüşmek üzere hoşçakalın ama bahsettiğim C# makalesini okumayı unutmayın derim :)