Может ли кто-нибудь объяснить мне, что происходит за кулисами при использовании тройного оператора? ли эта строка кода:Тернарный оператор в C#
string str = 1 == 1 ? "abc" : "def";
генерируется как простой, если/другое заявление? Рассмотрим следующее:
class A
{
}
class B : A
{
}
class C : A
{
}
Теперь, используя трехкомпонентную выражение следующим образом:
A a1 = 1 == 1 ? new B() : new C();
это даже не компилировать с этой ошибкой:
Type of conditional expression cannot be determined because there is no implicit conversion between 'ConsoleApp1.B' and 'ConsoleApp2.C'
Может кто-нибудь пролить свет на этот ?
Посмотрите этот ответ: http://stackoverflow.com/a/4290218/26396 –
Примечание: это не совсем о CLR, и хотя его * * тернарный оператор (и единственный, как это бывает) оператор * имя * является условным оператором. –