Merhabalar, Bu makalemde Convert.ToInt32() , Int32.Parse() ve Int32.TryParse() Farklılıkları’na değineceğim. String tipindeki bir değişkeninizi Integer veri tipine dönüştürürken genelde Convert.ToInt32() Method ve Sınıfını kullanırız. Fakat bu yöntem bazı durumlarda hatalar verecektir.
Method ve Sınıflarımızı örneklerle inceleyelim; ilk olarak dört adet değişken belirleyelim, Değişkenlerin hepsi String veri tipinden değişik veriler içersin.
Convert.ToInt32(); Değer Null olarak geldiğinde sıfır olarak döndürülür. Yukarda ki resmi inceleyerek anlatacak olursak erkan2 değişkeni Format dışarısında olduğu için
Convert.Int32() ile döndürülemez bu nedenle uygulandığında
FormatException hatası belirir. erkan3 değişkenine bakacak olursak içerisindeki veri
Maxvalue değerini aşıyor. Bu nedenle uygulandığında
OverFlowException hatası ile karşılaşacaksınız. Şimdi soracaksınız
MaxValue ve
MinValue Nedir?
– MaxValue: Dokuz basamaklı maksimum değerdir.(örn:999999999)
– MinValue: MaxValue’nin tam tersi eksi yönde dokuz basamaklı minimum değerdir.
(örn: -999999999)
erkan4 değişkenine baktığımızda Convert.Int32() formatlarına uygun veri içeriyor bu nedenle uygulandığında veri tipi Integer’a sorunsuz olarak dönecektir. Basit bir uygulamasını yapalım;
Int32.Parse(); Değer Null olarak geldiğinde
ArgumentNullException hatası ile karşılaşılır. Eğer değer Integer değilse
FormatException hatası ile karşılaşılır. Değişken içerisindeki veri
Maxvalue değerini aşıyorsa veya
MinValue değerinin altında ise uygulandığında
OverFlowException hatası ile karşılaşacaksınız.
MaxValue ve
MinValue değerlerini yukarıda açıkladım.
Int32.Parse(); ile basit bir uygulama yapalım;
Int32.TryParse(); Değişken Null veya Integer olmayan bir tipte geliyor ise sıfır olarak döndürülür.
MaxValue veya
MinValue belirtilmemiştir bu nedenle diğer dönüştürme metotlarında karşılaştığımız tüm hatalar
Int32.TryParse(); ile sıfır olarak döndürülür.
Bu sebepten dolayı diğerlerine göre daha iyi ve daha faydalıdır.Riskleri en aza indirir.Basit bir örnek ile açıklayalım;
Bu makaleninde sonuna geldik, bir başka makalemde görüşmek üzere .Net ile kalın
Kaynak : http://www.codeproject.com
Erkan GÜZELKÜÇÜK
Web Yazılım Geliştirmeni
erkanguzelkucuk(at)hotmail.com
Twitter: erkanguzelkucuk
39.362060 33.722381