如何使用这个if语句的三元组?

Teh*_*ate 1 c# ternary-operator

if (msg.Body.Contains("logging"))
{
    enableLogs = !enableLogs;
    sendMsg(enableLogs == true ? "Logging enabled." : "Logging disabled.");
}
else if (msg.Body.Contains("afk"))
{

}
Run Code Online (Sandbox Code Playgroud)

我怎么会把它变成三元if声明呢?没有必要,如果它不会很好,试图让我的程序更清洁.

Han*_*ney 6

三元语句严格用于赋值,而不是用于else-if多决策逻辑.它只有在两个逻辑路径都返回一个类型的实例时才有效.:)

var result = booleanValue ? logicPathForTrue : logicPathForFalse;
Run Code Online (Sandbox Code Playgroud)

使用三元的"好"(学术):

// Assign something to result. If something is null, assign new Something to result
Something result = something == null ? new Something() : something;
Run Code Online (Sandbox Code Playgroud)

三元运算需要变量赋值.这编译:

var something = true ? new object() : null;
Run Code Online (Sandbox Code Playgroud)

这不编译:

true ? new object() : null;
Run Code Online (Sandbox Code Playgroud)

  • 那么你*可以*嵌套三元语句(else-if),但任何这样做都值得痛苦. (3认同)