Koşullara bağlı olarak bir değişkene doğru lambda ifadesini atamak için koşullu (üçlü) operatörü kullanmaya çalışıyorum ama derleyici hatası alıyorum: koşullu ifade belirlenemiyor çünkü 'lambda ifadesi' ve 'lambda ifadesi' arasında örtük bir dönüşüm yoktur. Bu problemi çözmek için normal olanı kullanabilirim, fakat koşullu operatör benim için daha mantıklı (bu bağlamda), kodu daha özlü bir hale getirecektir, en azından, neden olmasın diye bilmek istiyorum. Çalış.Koşullu (üçlü) işleç kullanarak bir lambda ifadesi atama
// this code compiles, but is ugly! :)
Action<int> hh;
if (1 == 2) hh = (int n) => Console.WriteLine("nope {0}", n);
else hh = (int n) => Console.WriteLine("nun {0}", n);
// this does not compile
Action<int> ff = (1 == 2)
? (int n) => Console.WriteLine("nope {0}", n)
: (int n) => Console.WriteLine("nun {0}", n);
4 Huzurunuz için teşekkür ederiz. Rich.okelly, Nikhil Agrawal, Romain Verdier ve Alex! Bütün cevaplarınız doğruydu (derleme ve doğru sonucu ver), ama seçimim onun açıklaması nedeniyle rich.okelly'e gidiyor. –