C# programlama dilinde ?: Operatörü if else veya koşul ifadesini tek cümlede kullanmak için geliştirilmiş yöntemdir.. Basitçe if else yapısında bir koşul vardır. Bu koşul sağlanırsa buna uygun işlemleri, eğer koşul sağlanmazsa da ona uygun işlemleri yaparsınız. ?: operatörünün normal if else, switch case yapılarından farkı ise sadece iki koşullu olmasıdır. Koşul ifadesinin sadece iki durumu için işlem yapabilirsiniz. Oysa if else yapısı ele aldığımızda isteğimiz kadar else if ifadesini ekleyerek koşulları çoğaltabiliriz. Önemli olan konulardan bir tanesi de ?: operatörünün çok fazla kullanılmasının kod okunabilirliğini negatif yönde etkilemesidir. Buna rağmen bazı durumlarda bu operatörün kullanılması kod kalitesini artırabilir ve kodunuz daha profesyonel görünmesine neden olabilir.
Bu kısa bilgilerden sonra isterseniz örnekler üzerinden ?: operatörünün kullanımına ve kullanım alanlarına bakalım.
Öncelikle basit bir if else koşulunun ?: operatörü ile kullanımına bakalım. Bunun için Microsoft tarafından hazırlanan C# dokümanlarındaki örneğin benzerini kullanacağım. Örneğin ilk kısmı normal if else yapısı, son kısmı ise ?: koşul ifadesi kullanılarak yapılmıştır.
Konu ile alakalı sorularınız olursa lütfen sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım.
Bu kısa bilgilerden sonra isterseniz örnekler üzerinden ?: operatörünün kullanımına ve kullanım alanlarına bakalım.
Öncelikle basit bir if else koşulunun ?: operatörü ile kullanımına bakalım. Bunun için Microsoft tarafından hazırlanan C# dokümanlarındaki örneğin benzerini kullanacağım. Örneğin ilk kısmı normal if else yapısı, son kısmı ise ?: koşul ifadesi kullanılarak yapılmıştır.
int input = Convert.ToInt32(Console.ReadLine());
string sonuc;
// if-else koşulu.
if (input > 0)
sonuc = "positive";
else
sonuc = "negative";
// ?: koşul operatoru.
sonuc = (input > 0) ? "positive" : "negative";
Örnek ele alındığında konun anlaşılması için idealdir. Öncelikle ?: operatörü ile önemli olan detayları ele alacak olursak:
1. ?: operatörü bir koşul operatörüdür.
2. ?: koşul operatörü iki durumlu koşulları tek satırda yazabilmek için tasarlanmıştır.
3. ?: koşul operatörünün temel mantığı koşul sonucunu return edebilmesi ile alakalıdır. yukarıdaki örnekte olduğu gibi bir koşul ifadesi ve bu koşul ifadesinin doğru ve yanlış durumları için üretilmesi gereken sonuç.
4. Koşul ifadesinden sonraki sonuçların ikisi de aynı değişken türünden olmalıdır. Yani koşul sonuçlarından biri string, biri integer olmamalıdır.
Son olarak da ?: koşul operatörünün kullanım yerlerine bakalım. Öncelikle belirtmem gerekiyor ki bu operatörü kod içerisinde sürekli kullanmanız kod okunabilirliğini olumsuz etkileyecektir. Bu yüzden mümkün olduğu kadar bu operatörü doğru yerlerde kullanmaya dikkat etmelisin. Peki doğru yer neresidir diye sorarsanız da bunu bir örnekle göstermek istiyorum.
select new TeslimatViewModel
{
TeslimatMiktar = teslimat.TeslimEdilmesiGerekenMiktar,
TeslimatYapildiMi = teslimat.Teslimat != null ? true : false
}).ToList();
Bu bir projenin Linq TO SQL sorgusundan alınmış bir parçadır. Bu örneği vermemin nedeni de aslında tam olarak bu ?: koşul ifadesinin kullanılması gereken yerde kullanılmış olması ile alakalı. Yukarıdaki örnekte operatörün kullanım mantığını anlattığım için burada sadece kullanım yeri olarak genelde tek cümlede sonuç üretmek zorunda kaldığınızda kullanın açıklamasının örneğidir..
Yorumlar
Yorum Gönder