Как использовать тернарный оператор для этого оператора в c#

StackOverflow https://stackoverflow.com/questions/1678311

  •  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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top