簡體   English   中英

無法在System.Boolean上測試

[英]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 ,而不是booleanif塊不會自動轉換為boolean類型。

你可以這樣投你自己。

if ((bool) row["active"]) { ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM