CodeBlanks Logo Icon CodeBlanks

int.Parse ve TryParse

C# kursu · Başlangıç · Ders 96/116

int.Parse ve TryParse ile güvenli sayı dönüşümü öğrenirsin.

int.Parse ile dönüştürme

Console.ReadLine() her zaman string döndürür. Sayı bekliyorsan int.Parse metodu ile bu dizeyi int'e çevirirsin. Dize geçerli bir tamsayı değilse FormatException fırlatılır.

Örneğin int n = int.Parse("42"); satırı n'ye 42 atar. Ama int.Parse("merhaba") çağrısı hata fırlatır. Bu yüzden kullanıcı girdisi için daha güvenli bir yönteme ihtiyacın var; birazdan onu göreceğiz.

int.TryParse ile güvenli dönüştürme

int.TryParse metodu, dönüştürme başarılıysa true, değilse false döndürür ve sonucu out parametresiyle verir. Hıçbir istisna fırlatmaz; bu yüzden kullanıcı girdisi için çok daha güvenlidir.

Örnek: bool ok = int.TryParse(input, out int number); satırı, input geçerliyse ok'u true yapar ve number'a değeri koyar. Geçersizse ok false olur ve number sıfır kalır. Böylece programını if (ok) ile güvenle dallandırabilirsin.

out parametresi

out anahtar kelimesi, bir metodun birden çok değer döndürmesinin yoludur. TryParse, asıl dönüşünü bool ile yapar ve dönüştürülen sayıyı out parametresiyle verir. Metodu çağırmadan önce değişkeni tanımlamak zorunda değilsin; out int number yazarak aynı satırda da tanımlayabilirsin.

Örnek: if (int.TryParse(input, out int number)) { ... } ifadesinde hem dönüşüm denenir hem de number tanımlanır. Bu, C#'ın esnek bir özelliğidir ve kodu daha kısa tutar.

Uygulama Sayıyı güvenle çözümle

input değişkenini int.TryParse ile number değişkenine çevir. Dönüşüm başarılıysa number'ı Console.WriteLine ile yazdır; değilse "Geçersiz" yazdır. if ile TryParse'ın dönüşünü kontrol etmelisin.

Örnek çözümü göster
int number; tanımla, sonra if (int.TryParse(input, out number)) ile kontrol et ve WriteLine ile yazdır.
Örnek çözüm:
using System;

class Program
{
    static void Main()
    {
        string input = "42";
        int number;
        if (int.TryParse(input, out number))
        {
            Console.WriteLine(number);
        }
        else
        {
            Console.WriteLine("Geçersiz");
        }
    }
}

Kendini test et

  1. Geçersiz dizede ne olur?

    int n = int.Parse("merhaba");
    • 0 döner
    • null döner
    • FormatException fırlatır
    • Program donar
    Cevabı göster

    FormatException fırlatır — Doğru! int.Parse geçersiz dizede FormatException fırlatır.

  2. TryParse çağrısı

    string input = "42";
    int number;
    bool ok = ____;
    Console.WriteLine(ok);
    Cevabı göster
    string input = "42";
    int number;
    bool ok = int.TryParse(input, out number);
    Console.WriteLine(ok);
  3. TryParse neden tercih edilir?

    • Daha hızlı olduğu için
    • Yalnızca negatif sayılar için
    • string döndürdüğü için
    • Hata fırlatmadığı için
    Cevabı göster

    Hata fırlatmadığı için — Doğru! TryParse istisna fırlatmaz, bu yüzden kullanıcı girdisi için güvenlidir.

Başlangıç bölümündeki tüm dersler