zoukankan      html  css  js  c++  java
  • 由三目运算符 == ? : 引起的一个问题,醉了,基础不过关。记录一下,比较简单的一个问题,只是为了记录一下

    ResultModel rm =null
    
    string result="";
    result+="result:"+rm==null?"结果1":"结果2";
    
    Console.WriteLine(result);
    

    大家先看上面这段代码,告诉我结果会输出什么?

    估计很多人会毫不犹豫选择 结果1

    对的,我也是这么认为的,程序里面有一条大概这样的代码,结果一直得不到正确的答案。一直显示 结果2

    后来尝试给 +号后面带上 () 号,才正确显示,即

    ResultModel rm =null
    
    string result="";
    result+="result:"+(rm==null?"结果1":"结果2");
    
    Console.WriteLine(result);
    

    才正确显示 结果1,到这里,才知道应该是运算符号的优先级问题。

    +号的优先级大于 ==号

    所以,先运算+号,即 "result:"+rm,然后和null值对比,自然结果不为真,所以展示结果2,算是载了一下。以后碰到这种的,顺手打上括号。。。。也方便后续代码阅读吧

  • 相关阅读:
    Java Web总结一反射、单例模式
    Android中Log的管理
    改进边的导航
    当前效果
    understand一些功能
    maya 专家模式
    改进的共轭梯度法
    selenium TestNG 依赖和忽略测试
    selenium TestNG基本注释和属性
    JAVA 批量执行测试用例
  • 原文地址:https://www.cnblogs.com/Jerseyblog/p/6053763.html
Copyright © 2011-2022 走看看