Следующая ошибка появляется при копилляции кода:
В качестве оператора могут использоваться только выражения присваивания, вызова, инкремента, декремента и создание нового объекта
Код:
int result = 0;
int right, wrong = 0;
result == textBox1.Text.ToInt() ? right++ : wrong++;
Почему здесь ошибка? Хотя здесь всё отлично работает
if (result == textBox1.Text.ToInt())
right++;
else
wrong++;
P.S. На расширение ToInt не смотрите это мой extension method
Тернарный оператор - это некое подобие функции, т.е он возвращает одно из двух значений.
Поясняю. Есть код:
var result = condition ? valueIfTrue : valueIfFalse;
По сути это эквивалентно следующему коду:
var result = GetValue(condition);
int GetValue(bool condition)
{
if (condition)
return valueIfTrue;
else
return valueIfFalse;
}
Выражение тернарный оператор НЕ является выражением присваивания, вызова, инкремента, декремента и создание нового объекта.
Поэтому и появляется данная ошибка.
Для решения, можно заменить данное выражение на if
.
result ==
Вы делаете сравнение, а нужно присваивание:
result = textBox1.Text.ToInt() ? ++right : ++wrong;
Обратите еще внимание я использовал префиксный инкремент вместо постфиксного, иначе у вас получилось result = 0
.
UPD: Если вам нужно провести какие-либо операции в зависимости от некоего условия- не надо использовать тернарный оператор, используйте простой if
:
if (result == textBox1.Text.ToInt())
right++;
else
wrong++;
Тернарный оператор используется, когда надо получить одно из двух выражений в зависимости от условия:
Условный оператор (?:)
, известный как тернарный условный оператор,
возвращает одно из двух значений в зависимости от значения логического
выражения. docs.microsoft.com
Справедливости ради, здесь можно и тернарный оператор пофиксить, но это лютейший говнокод :)
int result = 0;
int right = 0;
int wrong = 0;
int fixer = (result == textBox1.Text.ToInt()) ? right++ : wrong++;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется приложение WPF которое выполняет нехитрые манипуляции, далее возникла необходимость например работы с данными из сторонних источников...
Раньше, наNET Framework MVC 5, я использовал трёхуровневую архитектуру вместе с паттернами Unit Of Work и Репозиторием
Как сделать поиск чтоб при каждом проходе по сайту искал строку и выводил ответ