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…

,

  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🙂

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s