(!(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#会有如此令人困惑的语法?
(!(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#会有如此令人困惑的语法?
你例子中if (!(A > B))跟if (A <= B)其中A是不一样的
应该是if (!(A > B)) 跟if (!A <= B) 是一样的
tb?.Rows.Count本身就有判断 if(tb!=null) tb=tb.Rows.Count;