日期:2014-05-17  浏览次数:20892 次

跨号运算符的问题

protected void Page_Load(object sender, EventArgs e)
    {
        int sta = 2;
        Response.Write(sta>1?"a":sta>0?"b":"c"+ "<br>");
    }

输出结果:a
<br>

protected void Page_Load(object sender, EventArgs e)
    {
        int sta = 2;
        Response.Write((sta>1?"a":sta>0?"b":"c")+ "<br>");
    }

输出结果:a<br>

为什么会不一样呢?好神奇啊
c# .net 运算符

------解决方案--------------------
运算符优先级问题
Response.Write(sta>1?"a":sta>0?"b":"c"+ "<br>");
相当于
string s = "";
if (sta > 1)
{
s = "a";
}
else if (sta > 0)
{
s = "b"
}
else
{
s = "c"+ "<br>"
}