2015-12-06 5 views
-1

У меня есть следующий C# тройного оператор:с # троичного оператором множественным, если другое условие

CrossConnectionProg = rdCrossConnectionProg.SelectedValue == "1" 
         ? true 
         : rdCrossConnectionProg.SelectedValue == "0" 
           ? false 
           : (bool?)null; 

Обратите внимание, что CrossConnecytionProg является обнуляемым булевым.

Что я пытаюсь сделать, это проверить значение переключателя (rdCrossConnectionProg). Если это «1», мне нравится присваивать true. Если это «0», мне нравится присваивать ему значение false. Если это не так, мне нравится присваивать ему нулевое значение.

Когда я делаю следующее, если ничего не выбрано, оно становится ложным вместо нуля.

+2

Откуда вы знаете, что это становится «ложным»? Когда я проверяю ваш код, он работает так, как ожидалось. –

+1

Перед вызовом оператора попробуйте 'Debug.WriteLine (rdCrossConnectionProg.SelectedValue);' знать, какова ваша ценность. У меня сильное чувство, что это «0», когда ничего не выбрано. – joce

+0

Это может быть вопрос о нобе, но какой класс переключателей вы используете? Я не могу найти «SelectedValue» в System.Windows.Forms.RadioButton или System.Web.UI.WebControls.RadioButton или System.Windows.Controls.RadioButton –

ответ

0

Что вы не используете более простое выражение? Почему не это? -

CrossConnectionProg = rdCrossConnectionProg.SelectedValue == "1"; 
+4

Это никогда не приведет к значению «null», как предполагалось. – David

+1

@ Давид, спасибо. Да, не заметил этого ... –

Смежные вопросы