您的位置:首页 > 职场人生

一道看似复杂但是简单的c#面试题

2013-04-19 14:55 453 查看
public void Main()
{
    object a = null;
    object b = new object();
    if (true ^ (a ?? b).Equals(a))
    {
        Console.WriteLine("true");
    }
    else
    {
        Console.WriteLine("false");
    }
}

输出是什么?

首先考运算优先级,括号内的最高,a ?? b,但是这个是什么意思呢?

其实他是双目运算符?:,即a==b?a:b,返回b,同样a??a呢,返回a

然后是.运算符,b.Equals(a) 返回 false

最后true ^false 这是异或,也就是有且仅有一个true时,结果为true,其他都为false

所以最后为true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: