Как использовать тернарный оператор для этого оператора в c#
-
16-09-2019 - |
Вопрос
int five = 5;
- когда переменная five равна 5, напишите true
- если переменная five не равна 5, напишите false
Как мне написать инструкцию для этого в ASP.NET используя C #?
Решение
int five = 5;
string answer = five == 5 ? "true" : "false";
Я вижу, что вы хотите использовать это для записи значений в ASP.NET, the answer
строка будет содержать желаемое вами значение, используйте это по своему усмотрению.
Другие советы
Тернарный оператор практически на любом языке работает как встроенный оператор if:
Console.WriteLine((five == 5) ? 'true' : 'false');
(Вам не должны строго требоваться внутренние скобки, но я хотел бы включить их для наглядности.)
Если логическое значение принимает значение true, то все выражение равно значению между ?
и :
.Если логическое значение принимает значение false, выражение равно значению после :
.
Я не верю, что вы можете включать строки кода в середину оператора.Предполагается, что это просто выражения, которые заменяют всю операторскую "фразу" после вычисления условия.
Я специалист по Java и на самом деле не знаю C#;может быть, все по-другому.Но, вероятно, нет.
Вы могли бы сделать это действительно простым.Сравнение пяти с 5 приводит к логическому значению, поэтому также возможно следующее:
int five = 5;
Console.WriteLine((five == 5).ToString());
В бул типовые toString() Построить строку() метод уже разработан для возврата "True" или "False", и если требуется альтернатива в нижнем регистре, это тоже просто:
int five = 5;
Console.WriteLine((five == 5).ToString().ToLower());
Если вам не нужно, чтобы оно было в нижнем регистре, вы также можете полностью исключить toString:
int five = 5;
Console.WriteLine(five == 5);
В ASP.NET, декларативный (то есть, куда переходит HTML):
<p>Is this five? <%= yourVariable == 5 ? "true" : "false"; %></p>
Или, в качестве альтернативы, в исходном коде (т. е. там, где находятся ваш код на C # и классы):
someTextBox.Text = yourVariable == 5 ? "true" : "false";
Response.Write(five == 5 ? "True" : "False");
Хотя, для этого примера, я бы вообще не использовал тернарный оператор:
Response.Write(five == 5);
На всякий случай вам следует поместить свои троичные выражения в parens (), потому что троичный оператор ?:имеет тонкий приоритет, который может укусить вас, если вы не смотрите.
string answer = ( (five==5) ? ("true") : ("false") );
Вероятно, в этом примере это не важно, но если троичное значение является частью сложного выражения, правила приоритета могут заставить компилятор интерпретировать выражение иначе, чем вы предполагали.
five==5?console.writeline('true'):console.writeline('false')
Это работает следующим образом:
<if-expression> ? <code-when-if-expression-evaluates-true> : <code-when-if-expression-evaluates-false>
Редактировать:
О чем я, вероятно, думал:
<%=five==5?'true':'false'%>
Еще одна вариация:
string message = XmlConvert.ToString(5 == five);
Console.Write(message);
Проще всего Консоль.Строка записи((пять == 5).toString());
Из комментария @JohnK использование:
int five = 5;
string answer = five == 5 ? bool.TrueString : bool.FalseString;
Представляет логическое значение true/false в виде строки.Это поле доступно только для чтения.https://msdn.microsoft.com/en-us/library/system.boolean.truestring (v= против110).aspx
использование оператора тернарного оператора в c # с Eval.(На странице aspx)
<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>