现在的位置: 首页 > 综合 > 正文

??运算符

2012年09月06日 ⁄ 综合 ⁄ 共 799字 ⁄ 字号 评论关闭

??运算符

在实际的程序开发中,为了有效避免发生异常情况,进行null判定是经常发生的事情,例如对于任意对象执行ToString()操作,都应该进行必要的null检查,以免发生不必要的异常提示,我们常常是这样实现的:

            object obj = new object();
 
            string objName = string.Empty;
            if (obj != null)
            {
                objName = obj.ToString();
            }
 
            Console.WriteLine(objName);

然而这种实现实在是令人作呕,满篇的if语句总是让人看着浑身不适,那么还有更好的实现方式吗,我们可以尝试(? :)三元运算符:

            object obj = new object();
            string objName = obj == null ? string.Empty : obj.ToString();
            Console.WriteLine(objName);

上述obj可以代表任意的自定义类型对象,你可以通过覆写ToString方法来输出你想要输出的结果,因为上述实现是如此的频繁,所以.NET 3.0中提供了新的操作运算符来简化null值的判断过程,这就是:??运算符。上述过程可以以更加震撼的代码表现为:

            // Copyright   : www.anytao.com        
            // Author      : Anytao,http://www.anytao.com        
            // Release     : 2008/07/31 1.0
 
            object obj = null;
            string objName = (obj ?? string.Empty).ToString();
            Console.WriteLine(objName);

那么??运算符的具体作用是什么呢?

??运算符,又称为null-coalescing operator,如果左侧操作数为null,则返回右侧操作数的值, 如果不为null则返回左侧操作数的值。它既可以应用于可空类型,有可以应用于引用类型。

抱歉!评论已关闭.