I have this code:
bool value = false;
if(value)
{
Console.Write(\"true\");
}
else
{
Console.Write(\"false\");
}
and I want to short
Just adding some precisions to the previous answer. The reason why you can't do this:
value ? Console.Write("true") : Console.Write("false");
Is because:
The conditional operator (?:) returns one of two values depending on the value of a Boolean expression.
source: MSDN
The keyword here is "return". The ternary operator doesn't exactly replace an if/else statement, it is meant for assignment. You can of course call a method within a ternary operation as long as it returns a boolean value. A ternary operator must return something.
bool value = false;
Console.Write(value ? "true" : "false");
If method returns a value then
bool value = false;
var result = value ? Test1() : Test2();
private int Test1()
{
return 1;
}
private int Test2()
{
return 1;
}
Put the operator inside Console.Write
Console.Write(value ? "true" : "false");
or if you really want to write the value:
Console.Write(value);
if you want to call 2 different Methods, you can write your if-statement in one line:
if (value) Method1(); else Method2();