C# 中 null-condition operator ?. 的困惑
(!(tb?.Rows.Count > 0)) return null;
会被编译成if (tb == null || tb.Rows.Count <= 0 return null;
;(tb?.Rows.Count <= 0) return null;
会被编译成if (tb != null || tb.Rows.Count <= 0 return null;
。
这就意味着if (!(A > B))
跟if (A <= B)
不一样了,为啥C#会有如此令人困惑的语法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你例子中if (!(A > B))跟if (A <= B)其中A是不一样的
应该是if (!(A > B)) 跟if (!A <= B) 是一样的
tb?.Rows.Count本身就有判断 if(tb!=null) tb=tb.Rows.Count;