MarioPT Ответов: 3

C# нуждается в некотором объяснении относительно одной строки кода


Здравствуйте, я делаю один код на C# с помощью VisualStudio Windows Froms, и мой вопрос таков:
У меня есть эта строка кода
buttonConnect.BackColor = Check.IsConnected ? Color.Red : Color.Green;


И мой вопрос в том, что это
x ? x : x ;


Что я уже пробовал:

Я имею в виду, что это то же самое, что иметь одно "если" и "еще"? в чем же разница? или как один бул, если истинный цвет. красный, если ложный цвет. зеленый?

johannesnestler

снова откройте свою книгу на C# (или откройте старую книгу на C++, где также используется этот оператор)? Не обижайтесь, но я просто думаю, что для базовых вопросов синтаксиса языка, подобных этому, лучше открыть книгу или учебник или отличный справочник MSDN, где все это объясняется в deepth с примерами... Shure есть еще несколько эзотерических языковых функций, где было бы разумно обратиться за советом к сообществу, но в этом случае я думаю, что вы узнаете гораздо больше из официального языкового справочника на MSDN (может быть, также прочитаете о других операторах, которых вы, возможно, никогда не видели?) - только мой 2С

3 Ответов

Рейтинг:
21

Karthik_Mahalingam

это называется как тернарный оператор[^]

эквавалентный синтаксис [buttonConnect.BackColor = Check.IsConnected ? Color.Red : Color.Green;]
является

if (Check.IsConnected)
      buttonConnect.BackColor = Color.Red;
  else
      buttonConnect.BackColor = Color.Green;


var result = x ? y : z;
// x is the condition which should return a boolean value
// y will be assigned to result, if x is true
// z will be assigned to result, if x is false



обратитесь к этому ?: Оператор (Ссылка На C# )[^]


0x01AA

Мне нравится это объяснение, 5. Бруно

Karthik_Mahalingam

Спасибо 0x01AA

Prateek Dalbehera

Прямолинейно и просто...

Рейтинг:
2

Prateek Dalbehera

Это просто тернарный оператор, который существует почти во всех языках.

Вы можете погуглить больше об этом.

С точки зрения непрофессионала, часть

Перед "? " - это условие

после"?"
1-я часть: если это условие возвращает TRUE
2-я часть(после ":"): если он возвращает FLASE или значение по умолчанию


Рейтинг:
14

OriginalGriff

Это короткая форма if:

if (Check.Isconnected)
   {
   buttonConnect.BackColor = Color.Red;
   }
else
   {
   buttonConnect.BackColor = Color.Green;
   }

Видеть здесь: ?: Оператор (Ссылка На C# )[^]


Prateek Dalbehera

чтобы получить четкую концепцию, просто объедините Решение 1 и решение 2 ... вы будете ясны с вашими сомнениями.