Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合?那么??表情_C#_Asp.net Mvc 3_C# To Vb.net - Fatal编程技术网

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你知道,我多年来一直称它为三元运算符,但从未意识到我这么做是出于一个坏习惯,那就是它是唯一的一个操作数。接得好。呜,你比我快。同样的答案。我会删除我的!呜呜,你赢了我。同样的答案。我会删除我的!