码迷,mamicode.com
首页 > Windows程序 > 详细

?? 运算符(C# 参考)

时间:2016-06-04 23:28:24      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

 

 

?? 运算符称作 null 合并运算符。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

备注
 
 

可以为 null 的类型可以表示类型的域中的值,或者值可以是未定义的(在这种情况下,值为 null)。当左操作数具有一个值为 null 的可以为 null 的类型时,可以使用 ?? 运算符的语法表现力来返回适当的值(右操作数)。如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。如果使用强制转换,且当前未定义可以为 null 值的类型,则会引发 InvalidOperationException 异常。

有关详细信息,请参阅可以为 null 的类型(C# 编程指南)

即使 ?? 运算符的两个参数都是常量,也不能将其结果视为常量。

 
class NullCoalesce
{
    static int? GetNullableInt()
    {
        return null;
    }

    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        int? x = null;

        // Set y to the value of x if x is NOT null; otherwise,
        // if x = null, set y to -1.
        int y = x ?? -1;

        // Assign i to return value of the method if the method‘s result
        // is NOT null; otherwise, if the result is null, set i to the
        // default value of int.
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // Display the value of s if s is NOT null; otherwise, 
        // display the string "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

?? 运算符(C# 参考)

标签:

原文地址:http://www.cnblogs.com/lvdongjie/p/5559710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!