
C# “Strongly Typed Language” (Güçlü Tür Denetimine Sahip) bir dildir. Her tanımlamamızda mutlaka veri tipini de vermek zorundayız. int, string, double, bool, decimal
etc. Haliyle tür dönüşümleri çok önemli bir konu haline geliyor.
Tür dönüşümlerinde genelde kullanıcıdan aldığımız string ifadeyi bir sayısal veri türüne dönüştürmek isterken Convert.ToInt32 veya int.TryParse işlemi yapıyoruz. Bu yazıda bu iki kullanımı ve aralarındaki farkı anlamaya çalışacağız.
Convert.ToInt32(string)
System.Convert
sınıfının bir metodudur. Argüman olarak aldığı string ifadeyi direk dönüştürmeye çalışır, eğer string bir tam sayı (burada Int32 kullanıldı) değil ise veya null ise hata (exception) fırlatır. null
değer verirlirse 0
döner.
Burada int türü üzerinden anlatılmıştır ancak aynı işlem ToDouble veya ToDecimal şeklinde de yapılabilir. Diğer türlere dönüşüm için BURAYI kontrol edebilirsiniz.
string value = "abc";
int number = Convert.ToInt32(value); // FormatException hatası verir
Convert.ToInt32
Ne zaman kullanılır?
Verinin kesinlikle sayı olacağını biliyorsak veya fırlatılan hatayı (try-catch ile mesela) kontrol altına alacaksak kullanılabilir.
int.TryParse(string, out int result)
Bu metot bize bir bool
değer döner. Dönüşüm başarılı ile true
, başarısız ise false
döner. true
olması durumunda out
ile argüman kısmında tanımladığımız değişkene çıktıyı verir.
string value = "123";
if (int.TryParse(value, out int number))
{
Console.WriteLine("Başarılı: " + number);
}
else
{
Console.WriteLine("Geçersiz sayı!");
}
Burada çıktı için int number
tanımlanmıştır ancak number
dışarıda da tanımlanabilir. Bu kısımda int
yerine diğer sayısal türleri de çıktı olarak alabilirsiniz.
Ne zaman kullanılır?
Bir önceki kullanımdan farklı olarak hata durumunu bool tipinde direk yapabilir, çıktıyı ise direk alabiliriz. Daha güvenli bir dönüşüm imkanı sunar.
Karşılaştırma
Convert.To..
ile int.TryParse()
karşılaştırma tablosu bize özet bir bilgi sunabilir.
Özellik | Convert.ToInt32() | int.TryParse() |
---|---|---|
Hata fırlatır mı? | Evet (FormatException ) | Hayır |
null için davranış | 0 döner | false döner |
Güvenli mi? | Hayır | Evet |
Kolaylık | Daha kısa kod | Biraz daha uzun ama güvenli |
Hangisini Seçmeli?
Durum | Kullanman gereken |
---|---|
Kullanıcıdan veri alıyorsan, hata istemiyorsan | ✅ int.TryParse |
Kontrol sende, hata olması sorun değilse | ✅ Convert.ToInt32 |
Nullable veriyle uğraşıyorsan (örneğin null ) | Genelde TryParse daha güvenlidir |
Bu yazımda C# Convert.ToInt32 ve int.TryParse arasındaki fark konusunu ele almaya çalıştım. Bu içerik benim için sürekli referans olacak ve elimden geldiğince güncellemeye çalışacağım. İçeriğe katkı sağlamak isterseniz, yorum yazmaktan çekinmeyiniz.
Gönderilere yorum yazabilir, linkedin veya @huseyineskan instagram hesabımdan benimle iletişime geçebilirsiniz.
Yazılım kategorisine buradan göz atabilirsiniz.