为Null还能.Tag,不报异常吗?

解决方案 »

  1.   


    你没理解我的意思,
    我记得以前这样写是没问题的, ||逻辑判断的时候当==null为真的时候就会跳过null.ToString()的判断,直接进入if语句里。
    后面那判断被编译器“偷懒”掉了。
      

  2.   

    ?? 前面tag==null不就为true了吗?以前是不执行后面的tostring的,但现在执行了,是vs2013的问题吗?
      

  3.   

    “tag==null就为true”还是“SelectedNode=null”,自己先要看清楚。
      

  4.   

    你判断的是tvDir.SelectedNode.Tag ==null
    而不是 tvDir.SelectedNode==null另外,不是运算进行偷懒。。而是规定||或者&&时,只要满足了结束条件,后续判断就不在执行
    如果所有判断都要执行,则应该用|或者&
      

  5.   

    明白了,是我疏忽了。
    改成 
    tvDir.SelectedNode == null || tvDir.SelectedNode.Tag == null || tvDir.SelectedNode.Tag .ToString()=="ASD"