C# Tek Satırda If Kontrolü Yazmak (Ternary If)


Giriş

Tek satırda if cümlesi yazmak ilk duyulduğunda kulağa oldukça hoş geliyor. Böyle yapıyı sizler ile paylaşmak istedim. Yazılım projelerinin içerisinde basit anlamlarda kullanılabilir. Yazarken nelere dikkat etmemiz gerekiyor bunlarıda açıklamaya çalışacağım. Genel olarak şu şekilde yazılır yapısı şudur diye belirtmeyeceğim direkt örnek üzerinden anlatacağım.

Hatırlatma ve Dikkat Edilmesi Gerekenler

Bu örneği C# dili ile .net 4.0 versiyonunda Visual Studio 2010 Ultimate programında yazıyorum.

Mantık Yürütme

Buradaki yapacağım örnekte aklımda olan iki örneği anlatacağım ama tamamen kodlamasına geçmeyeceğim ya da uygulamayı baştan yazmayacağım. Sadece if li bölümü yazacağım. Örnekler;

  • Statik şifre kontrolü yapmak (textboxtaki bilgi ile bizim şifremi uyuyor mu?)
  • Basit hesap makinesinde çıkarma işlemi yapacağız. (hangi sayı büyükse ondan küçüğü çıkaracağız) (anlatmayacağım örneğe aşağıda link veriyorum oradan indirip bakabilirsiniz)

Kodlama

Öncelikli olarak File > New Project ten aşağıdaki gibi seçim yapıp “Tek_Satirda_If_Yazma” adında yeni bir Windows Form Application oluşturuyoruz. Windows Form Uygulamalarında ben daima Form’un FormBorderStyle özelliğini “none” yapıyorum. Benim formumda yukarıda 2 örnek yapacağımdan bahsettiğim için 4 textbox ve 2 buton yerleştirdim. Kodları daha net açık bir şekilde görtermek için bunu yapmayı tercih ettim yoksa 2 textbox 1 buton ve bir checkbox/radio button ile de yapabilirdim. Ekranımız aşağıdaki gibi şuan:

Burada ilk olarak “kullanıcı adı” ve “şifre” bilgisini alıp tek satırda kontrol edip kişiye dönüt vereceğiz, “giriş başarılı” veya “giriş başarısız” diye. Butonun click event’ine aşağıdaki kodu yazıyorum.

Normal:

string girisIslemi;
if (txtKulAdi.Text == "mcs" && txtKulSifre.Text == "123")
{
    girisIslemi="Giriş Başarılı";
}
else
{
    girisIslemi = "Giriş Başarısız";
}
MessageBox.Show(girisIslemi);

Tek Satırda If  ile (Ternary If):

string girisIslemi = (txtKulAdi.Text == "mcs" && txtKulSifre.Text == "123")
? "Giriş Başarılı" 
: "Giriş Başarısız";
MessageBox.Show(girisIslemi);

Bir Adım Daha Kısaltmak İstersek:

string girisIslemi = (txtKulAdi.Text == "mcs" && txtKulSifre.Text == "123") 
? MessageBox.Show("Giriş Başarılı").ToString() 
: MessageBox.Show("Giriş Başarısız").ToString();

Buradaki yapıda şuan dikkatimizi çeken “?” ve “:” dir. Burada “?” olan kısma kadar şartımızı yazıyoruz yani neyi karşılaştırıyoruz neyi kontrol ediyoruz, “?” ile “:” arasında bölüm if koşulu sağlanıyorsa yapılacak olan işlem. “:” den sonrası kısım ise else işlevi görüyor yani sağlanmazsa yapılacak olanu belirtiyoruz.

Biz burada istersek şu şekilde de tanımlayabiliriz:


Dikkat Etmemiz Gereken:
Tanımladığım değişken türü ne ise “?” nden sonra ve “:” den sonra o türe göre değer yazıyoruz. Yukarıdaki “string” türünde tanımladığımızda “Giriş Başarılı” diye yazdırmıştık orada 12345 diye sayısal bir değer veremeyiz buna özellikle dikkat etmemiz gerekiyor.

İndirme

Uygulamayı Buradan İndirebilirsiniz.

İyi kodlamalar…

Advertisement

,

  1. #1 by ercanayan45 on August 14, 2014 - 1:56 pm

    MessageBox.Show((txtKuladi.Text == “ea” && txtKulSifre.Text == “123”) ? “Giriş Başarılı” : “Giriş Başarısız”);

    Böyle daha da kısa olur 🙂 Güzel makale dostum 🙂

  2. #3 by AaYılmaz Karahanlı on January 4, 2019 - 10:17 am

    Hocam hala uğraşıyor musunuz bu konular ile? Ben bir C# Form1 ile giriş paneli yaptım, online bir siteye bağlanıyor. Düzgün çalışıyor ve başarılı kodlandı. Zira webBrowser1 i gizleyerek yapıyorum ve giriş yapılıp yapılmadığını göstermek için messageBox eklemem gerekiyor, if ve else için sınama olarak da mevcut ve bağlanan URL yi kullanmak istiyorum (Mevcut: giriş yapılan URL sayfası, Bağlanan: Başarılı girişten sonra sayfaya girilen URL gibi) fakat if komutuna URL atayamadım sürekli hata oldu. Hala aktifseniz size senaryoyu gönderebilirim. Yardımcı olursanız sevinirim . Teşekkürler..

    • #4 by Mahmut Can Sozeri on February 21, 2019 - 12:53 pm

      merhaba, elimden geldiğince destek olmaya çalışırım. Burada net olarak kod bloğu paylaşabilir misiniz?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: