C# 组合?那么??表情
不知道如何打开这个。有人能帮忙吗?外部操作员是:C# 组合?那么??表情,c#,asp.net-mvc-3,c#-to-vb.net,C#,Asp.net Mvc 3,C# To Vb.net,不知道如何打开这个。有人能帮忙吗?外部操作员是::,或。这是一个单行的if语句 string value = ( expression ? expression ?? string: string.Method()) 可替换为: if (expression) first; else second; 内部运算符?,或者如果值不是null,则只返回值本身,如果值是null,则返回其他值 expression ? first : second; 与(在旧代码中通常使用三元运算符表示
:代码>,或。这是一个单行的if
语句
string value = ( expression ? expression ?? string: string.Method())
可替换为:
if (expression)
first;
else
second;
内部运算符?
,或者如果值不是null
,则只返回值本身,如果值是null
,则返回其他值
expression ? first : second;
与(在旧代码中通常使用三元运算符表示)相同:
因此,您的整个声明(一旦生效,因为我假设声明的参数不是字面意义上的):
外部运算符为:?:代码>,或。这是一个单行的if
语句
string value = ( expression ? expression ?? string: string.Method())
可替换为:
if (expression)
first;
else
second;
内部运算符?
,或者如果值不是null
,则只返回值本身,如果值是null
,则返回其他值
expression ? first : second;
与(在旧代码中通常使用三元运算符表示)相同:
因此,您的整个声明(一旦生效,因为我假设声明的参数不是字面意义上的):
该示例无效,但让我们假设它是有效的,然后重新格式化它:
string value;
if (expression1)
{
value = expression2 ?? "some string";
/*
if (expression2 != null)
{
value = expression2;
}
else
{
value = "some string";
}
*/
}
else
{
value = someMethod();
}
现在,你知道分别是和吗?如果是这样的话,现在就应该清楚了……示例无效,但让我们假设它是有效的,然后重新格式化它:
string value;
if (expression1)
{
value = expression2 ?? "some string";
/*
if (expression2 != null)
{
value = expression2;
}
else
{
value = "some string";
}
*/
}
else
{
value = someMethod();
}
现在,你知道分别是和吗?如果是这样的话,这一切现在应该都清楚了…在C#中,a?b:c是“如果a,那么b,其他c”的缩写
a??b是“如果a==null,则返回b,否则返回a”的缩写。如果您知道SQL,请考虑“ISNULL”运算符
我假设“string”不是类型,而是某种常量字符串
string value = (
expression ? // expression determines which branch to take
expression ?? string // Null coalescing operator
: string.Method() // Alternative branch of conditional operator
);
在C#中,a?b:c是“如果a,那么b,其他c”的缩写
a??b是“如果a==null,则返回b,否则返回a”的缩写。如果您知道SQL,请考虑“ISNULL”运算符
我假设“string”不是类型,而是某种常量字符串
string value = (
expression ? // expression determines which branch to take
expression ?? string // Null coalescing operator
: string.Method() // Alternative branch of conditional operator
);
我不太清楚你想做什么,因为你有一个布尔表达式和字符串,你不能使用字符串的方式,但这将是一个更详细的方式
if (expression1)
{
if (expression2 != null)
value = expression2
else
value = string1
}
else
{
value = string2.Method();
}
我不太清楚你想做什么,因为你有一个布尔表达式和字符串,你不能使用字符串的方式,但这将是一个更详细的方式
if (expression1)
{
if (expression2 != null)
value = expression2
else
value = string1
}
else
{
value = string2.Method();
}
你到底想做什么?实际上,这是无效的-你不能像这样使用string
。请将示例更改为实际编译的示例。此外,如果您现在无法理解它,则说明代码维护困难。不要这样做。你到底想做什么?事实上,这是无效的-你不能像这样使用string
。请将示例更改为实际编译的示例。此外,如果您现在无法理解它,则说明代码维护困难。不要这样做。名称?:是条件运算符。它恰巧是一个三元运算符,因为它有三个操作数,而且它恰巧是唯一的一个操作数,但这不是它的名字。@Jon你知道,我多年来一直称它为三元运算符,但从未意识到我这么做是出于一个坏习惯,那就是它是唯一的一个操作数。捕捉得好。名称?:是条件运算符。它恰巧是一个三元运算符,因为它有三个操作数,而且它恰巧是唯一的一个操作数,但这不是它的名字。@Jon你知道,我多年来一直称它为三元运算符,但从未意识到我这么做是出于一个坏习惯,那就是它是唯一的一个操作数。接得好。呜,你比我快。同样的答案。我会删除我的!呜呜,你赢了我。同样的答案。我会删除我的!