C# 有人能用简单的英语或伪代码解释三元运算符吗?
我不理解下面几行中使用的语法,只是它遵循一个基本结构,似乎被称为三元运算符C# 有人能用简单的英语或伪代码解释三元运算符吗?,c#,syntax,ternary-operator,conditional-operator,C#,Syntax,Ternary Operator,Conditional Operator,我不理解下面几行中使用的语法,只是它遵循一个基本结构,似乎被称为三元运算符 string path = args == null || args.Length == 0 ? @"C:\GENERIC\SYSTEM\PATH" : args[1]; 我不熟悉这种语法。有没有人能帮我把它翻译成真正的英语(或伪代码),就像if语句可以转换成“if this then that”一样 编辑:谢谢大家的回答,你们都帮了大忙。不幸的是,我只能投你们中的一个,但我会投你们中的一大群 stri
string path = args == null || args.Length == 0 ?
@"C:\GENERIC\SYSTEM\PATH" :
args[1];
我不熟悉这种语法。有没有人能帮我把它翻译成真正的英语(或伪代码),就像if语句可以转换成“if this then that”一样
编辑:谢谢大家的回答,你们都帮了大忙。不幸的是,我只能投你们中的一个,但我会投你们中的一大群
string path = "";
if(args==null || args.Length==0)
{
path = @"C:\GENERIC\SYSTEM\PATH";
}
else
{
path = args[1];
}
这是一个翻译。三元运算符看起来像:
result=(条件)?firstResult:otherResult
您的三元运算符表示:
如果参数为null或空->使用默认路径| else->使用参数中的路径
这是一个翻译。三元运算符看起来像:
result=(条件)?firstResult:otherResult
您的三元运算符表示:
如果args为null或空->使用默认路径| else->使用args中的路径这相当于
string path;
if(args == null || args.Length == 0)
path = @"C:\GENERIC\SYSTEM\PATH" ;
else
path = args[1];
可以将三元运算符分解为
VariableToStoreResult = BooleanCondition ? ValueIfConditionIsTrue : ValueIfConditionIsFalse
这相当于
string path;
if(args == null || args.Length == 0)
path = @"C:\GENERIC\SYSTEM\PATH" ;
else
path = args[1];
可以将三元运算符分解为
VariableToStoreResult = BooleanCondition ? ValueIfConditionIsTrue : ValueIfConditionIsFalse
您看到的是一个特殊的条件运算符。(这是一个很好的教程) 它是这样使用的:
condition ? first_expression : second_expression;
基本上,如果该语句为true,则执行第一个表达式,否则执行第二个表达式。一般来说,它是if/else块的一个小快捷方式,应该只用于小语句。嵌套三元运算符在很大程度上是不受欢迎的
所以如果args==null | | args.Length==0
然后path=@“C:\GENERIC\SYSTEM\path”
,如果不是,则等于args[1]
它相当于您的标准if
块
string path;
if(args == null || args.Length == 0)
{
path = @"C:\GENERIC\SYSTEM\PATH";
}
else
{
path = args[1];
}
您看到的是一个特殊的条件运算符。(这是一个很好的教程) 它是这样使用的:
condition ? first_expression : second_expression;
基本上,如果该语句为true,则执行第一个表达式,否则执行第二个表达式。一般来说,它是if/else块的一个小快捷方式,应该只用于小语句。嵌套三元运算符在很大程度上是不受欢迎的
所以如果args==null | | args.Length==0
然后path=@“C:\GENERIC\SYSTEM\path”
,如果不是,则等于args[1]
它相当于您的标准if
块
string path;
if(args == null || args.Length == 0)
{
path = @"C:\GENERIC\SYSTEM\PATH";
}
else
{
path = args[1];
}
它可以重写为:
string path;
if(args == null || args.Length == 0)
path = @"C:\GENERIC\SYSTEM\PATH";
else
path = args[1];
它可以重写为:
string path;
if(args == null || args.Length == 0)
path = @"C:\GENERIC\SYSTEM\PATH";
else
path = args[1];
基本上
如果args为null或args的长度为零然后
Path=“C:\Generic\System\Path”
否则
Path=args[1]基本上 如果args为null或args的长度为零
然后
Path=“C:\Generic\System\Path”
否则
Path=args[1]从高级别到低级别,这里是
=
,|
,:
,=
所以基本上,你的代码等于
string path;
if((args == null) || (args.Length == 0))
{
path = @"C:\GENERIC\SYSTEM\PATH" ;
}
else
{
path = args[1];
}
看看
条件运算符(?:)返回两个值之一,具体取决于
布尔表达式的值。下面是
条件运算符
string path = args == null || args.Length == 0 ?
@"C:\GENERIC\SYSTEM\PATH" :
args[1];
从高层次到低层次,在这里
=
,|
,:
,=
因此,基本上,您的代码等于
string path;
if((args == null) || (args.Length == 0))
{
path = @"C:\GENERIC\SYSTEM\PATH" ;
}
else
{
path = args[1];
}
看看
条件运算符(?:)返回两个值之一,具体取决于
布尔表达式的值。下面是
条件运算符
string path = args == null || args.Length == 0 ?
@"C:\GENERIC\SYSTEM\PATH" :
args[1];
正如Jon Skeet在评论中所说,这个操作符被称为条件操作符。is name背后的原因是它的工作原理非常类似于if语句。它通常被称为三值运算符,因为它是目前唯一具有三个操作数的运算符 现在,解释如下:
int myInt = myBool ? valueWhenTrue : valueWhenFalse;
这可以理解为:
int myInt;
if(myBool)
myInt = valueWhenTrue;
else
myInt = valueWhenFalse;
重要注意事项:条件运算符只能用于表达式(本身作为表达式计算),不能用于语句。例如,这是无效代码:
myBool ? DoSomething() : DoSomethingElse();
正如Jon Skeet在评论中所说,这个操作符被称为条件操作符。is name背后的原因是它的工作原理非常类似于if语句。它通常被称为三值运算符,因为它是目前唯一具有三个操作数的运算符 现在,解释如下:
int myInt = myBool ? valueWhenTrue : valueWhenFalse;
这可以理解为:
int myInt;
if(myBool)
myInt = valueWhenTrue;
else
myInt = valueWhenFalse;
重要注意事项:条件运算符只能用于表达式(本身作为表达式计算),不能用于语句。例如,这是无效代码:
myBool ? DoSomething() : DoSomethingElse();
结构相当基本
variable = value;
但是现在这个值取决于一个条件,这个条件表示真或假
variable = condition ? true : false;
条件可以是任何东西,甚至是返回此true或false状态的函数
您在提交的示例中看到的是一个组合条件
string path = args == null || args.Length == 0 ?
@"C:\GENERIC\SYSTEM\PATH" :
args[1];
这里,如果“OR”中的一条语句为true,则条件为true
阅读
结构相当基本
variable = value;
但是现在这个值取决于一个条件,这个条件表示真或假
variable = condition ? true : false;
条件可以是任何东西,甚至是返回此true或false状态的函数
您在提交的示例中看到的是一个组合条件
string path = args == null || args.Length == 0 ?
@"C:\GENERIC\SYSTEM\PATH" :
args[1];
这里,如果“OR”中的一条语句为true,则条件为true
阅读
不相关,但如果
args
是长度正好为1项的数组/集合,则此代码将失败。请注意,此运算符的名称是条件运算符。这是一个三值运算符,因为它有三个操作数,而目前它是唯一一个这样的运算符。。。但这就是术语“三元”在这里的全部含义。@JonSkeet因为它是唯一的一个,所以通常被称为三元运算符,每个人都理解它。这个术语比条件运算符更为常见,尽管精度较低。@Barmar:如果引入了第二个三元运算符,则所有将其称为“三元运算符”的人都需要更改,尽管