C# Switch-case
Selam yazılım uzman adayları :)
Yeni bir C# makalesinde yine birlikteyiz ve bugünkü yeni makale konumuz C# switch-case konusu olacak.Aslında bu makaleyi Java Switch-Case makalesinde anlatmıştım ve C# ile Java arasında pek bir fark olmamasına karşın farklı bir örnek ile bu makalede de anlatmak istiyorum.
C# karar yapılarında iki önceki makalemizde if-else'i görmüştük ve programın çalışma süreçlerinde ne kadar farklı senaryolar ortaya atılırsa o kadar "else-if" kod bloğu açıyorduk,e haliyle büyük projelerde çok fazla senaryo olması durumunda çok fazla else-if yazmak biz yazılımcıları kod yazmaktan sıkabilir :) diye programcılar switch-case karar yapısını ortaya çıkarmışlar.
Switch-case yapısında koşul bir kez belirlendikten sonra ardı boyunca yazılan her case deyimi karşısına ne yapılacağı yazılır ve case senaryoları son bulduğunda hiçbir senaryoya denk gelmeyen olay için switch-case yapısının son kısmına "default-varsayılan" kod bloğu eklenir,default kod bloğu if-else yapısındaki else deyiminin yerine geçer.
Genel switch-case yapısı ise şu şekildedir:
Konuyu daha iyi anlamak adına küçük bir uygulama yapalım ve bunun için Visual Studio'yu açıp .Net Framework 4 sürümünde bir C# projesi oluşturalım.Proje adına ise "switchCaseApp" yazalım ve ardından ekrana gelecek windows formumuza aşağıdaki gibi kontrollerimizi ekleyelim:
Şimdi yapmak istediğimiz olay şu: kullanıcı telefon alan kodlarından birini textboxa yazsın ve butona tıkladığında o alan kodunun şehir adını labela yazdıralım.
Öncelikle butona çift tıklayıp click eventine geçiyoruz ve textboxa girilecek alan kodu bilgisini string tipinde bir değişkene atayalım:
Tabi kullanıcı textboxı boş geçemesin diye if-else karar yapısını kullanarak önlemimizi aldık.Şimdi switch-case yapımızı yazıyoruz:
Burada yaptığımızı baştan sona özetlersek 22. satırda kullanıcının textboxa boş geçmesini önledik,24. satırda kullanıcının yazdığı değeri "alanKodu" adındaki değişkene atadık ve bu değişkeni 26. satırdaki switch deyimine koşul olarak verdik.
28. satırda ilk senaryomuz olan kullanıcının textboxa "212" yazdığını varsaydık,29. satırda oluşturduğumuz boş labelın text değerine "İstanbul" yazısını verdik ve 30.satır ile ilk senaryomuzun kapanışını verdik.
Bu arada windows formda labela yazı yazdırma işlevi olarak labelın text özelliğini kullandığımızı öğrenmiş olduk. :)
Peki "216" alan kodu İstanbul'a ait değil mi? Tabiki evet,o yüzden yeni bir case senaryosu daha ekliyoruz:
Şimdide Ankara için case senaryosu ekleyelim:
Bu şekilde yeni case senaryoları ekleyerek tüm illerimize ait telefon alan kodlarını eklemek mümkün ancak konuyu daha fazla uzatmadan son olarak default senaryomuzu yazalım,yani kullanıcı belirlediğimiz case senaryolarından farklı bir değer girerse:
37 ve 39.satırlarda default senaryomuzu,diğer anlamıyla if-else yapısındaki else deyimini yazdık ve projemiz çalıştırılmaya hazır.Şimdi test edelim:
Program gayet güzel çalışıyor,peki kullanıcı textboxa birşey yazmasaydı:
ve kullanıcı textboxı boş geçemiyor.
Gördüğünüz gibi switch-case kullanımı gayet hoş bir karar yapısıdır ve bu örneğimizi if-else karar yapısıyla yazsaydık birinci senaryodan sonraki her case yapısı için else if deyimi kullanmak zorunda kalacaktık.
Switch-case ile ilgili anlatacaklarım buraya kadar,bir sonraki makalemizde görüşmek dileğiyle.
Hoşçakalın :)
Projeyi İndir
Yeni bir C# makalesinde yine birlikteyiz ve bugünkü yeni makale konumuz C# switch-case konusu olacak.Aslında bu makaleyi Java Switch-Case makalesinde anlatmıştım ve C# ile Java arasında pek bir fark olmamasına karşın farklı bir örnek ile bu makalede de anlatmak istiyorum.
C# karar yapılarında iki önceki makalemizde if-else'i görmüştük ve programın çalışma süreçlerinde ne kadar farklı senaryolar ortaya atılırsa o kadar "else-if" kod bloğu açıyorduk,e haliyle büyük projelerde çok fazla senaryo olması durumunda çok fazla else-if yazmak biz yazılımcıları kod yazmaktan sıkabilir :) diye programcılar switch-case karar yapısını ortaya çıkarmışlar.
Switch-case yapısında koşul bir kez belirlendikten sonra ardı boyunca yazılan her case deyimi karşısına ne yapılacağı yazılır ve case senaryoları son bulduğunda hiçbir senaryoya denk gelmeyen olay için switch-case yapısının son kısmına "default-varsayılan" kod bloğu eklenir,default kod bloğu if-else yapısındaki else deyiminin yerine geçer.
Genel switch-case yapısı ise şu şekildedir:
Konuyu daha iyi anlamak adına küçük bir uygulama yapalım ve bunun için Visual Studio'yu açıp .Net Framework 4 sürümünde bir C# projesi oluşturalım.Proje adına ise "switchCaseApp" yazalım ve ardından ekrana gelecek windows formumuza aşağıdaki gibi kontrollerimizi ekleyelim:
Şimdi yapmak istediğimiz olay şu: kullanıcı telefon alan kodlarından birini textboxa yazsın ve butona tıkladığında o alan kodunun şehir adını labela yazdıralım.
Öncelikle butona çift tıklayıp click eventine geçiyoruz ve textboxa girilecek alan kodu bilgisini string tipinde bir değişkene atayalım:
Tabi kullanıcı textboxı boş geçemesin diye if-else karar yapısını kullanarak önlemimizi aldık.Şimdi switch-case yapımızı yazıyoruz:
Burada yaptığımızı baştan sona özetlersek 22. satırda kullanıcının textboxa boş geçmesini önledik,24. satırda kullanıcının yazdığı değeri "alanKodu" adındaki değişkene atadık ve bu değişkeni 26. satırdaki switch deyimine koşul olarak verdik.
28. satırda ilk senaryomuz olan kullanıcının textboxa "212" yazdığını varsaydık,29. satırda oluşturduğumuz boş labelın text değerine "İstanbul" yazısını verdik ve 30.satır ile ilk senaryomuzun kapanışını verdik.
Bu arada windows formda labela yazı yazdırma işlevi olarak labelın text özelliğini kullandığımızı öğrenmiş olduk. :)
Peki "216" alan kodu İstanbul'a ait değil mi? Tabiki evet,o yüzden yeni bir case senaryosu daha ekliyoruz:
Şimdide Ankara için case senaryosu ekleyelim:
Bu şekilde yeni case senaryoları ekleyerek tüm illerimize ait telefon alan kodlarını eklemek mümkün ancak konuyu daha fazla uzatmadan son olarak default senaryomuzu yazalım,yani kullanıcı belirlediğimiz case senaryolarından farklı bir değer girerse:
37 ve 39.satırlarda default senaryomuzu,diğer anlamıyla if-else yapısındaki else deyimini yazdık ve projemiz çalıştırılmaya hazır.Şimdi test edelim:
Program gayet güzel çalışıyor,peki kullanıcı textboxa birşey yazmasaydı:
ve kullanıcı textboxı boş geçemiyor.
Gördüğünüz gibi switch-case kullanımı gayet hoş bir karar yapısıdır ve bu örneğimizi if-else karar yapısıyla yazsaydık birinci senaryodan sonraki her case yapısı için else if deyimi kullanmak zorunda kalacaktık.
Switch-case ile ilgili anlatacaklarım buraya kadar,bir sonraki makalemizde görüşmek dileğiyle.
Hoşçakalın :)
Projeyi İndir