[英]Can't test on System.Boolean
這個
row["active"].GetType().ToString()
逃避
System.Boolean
為什么這是一個錯誤?
if (row["active"]) { ... }
if (row["active"] == true) { ... }
我認為System.Boolean可能是true還是false?
row["active"]
的返回類型是一個對象,它作為布爾謂詞無效。 返回的值實際上是一個包裝的布爾值並不重要。
你知道它是一個布爾值,但編譯器沒有。 如果row["active"]
會突然返回一個字符串怎么辦? 比表達式無效。 .NET運行時在編譯時提前綁定變量。 它不像運行時的語言那樣在運行時評估它們的類型。
你必須通過強制轉換它告訴編譯器值是一個布爾值:
if ((bool)row["active"]) { ... }
row[string]
返回type object
,而不是boolean
, if
塊不會自動轉換為boolean
類型。
你可以這樣投你自己。
if ((bool) row["active"]) { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.