我試圖讓基於Arduino的庫(http://blog.electrodragon.com/rc522-write-a-card-demo-code/)在C#庫,以物聯網核心,但我不明白的是:轉換字節爲bool在C#
if (!(temp & 0x03))
或
while ((i!=0) && !(n&0x01) && !(n&waitIRq))
它是必需的布爾值,但這些是字節! 我可以如何轉換?
如果有人知道已經有一個圖書館,請讓我知道。 謝謝。
我試圖讓基於Arduino的庫(http://blog.electrodragon.com/rc522-write-a-card-demo-code/)在C#庫,以物聯網核心,但我不明白的是:轉換字節爲bool在C#
if (!(temp & 0x03))
或
while ((i!=0) && !(n&0x01) && !(n&waitIRq))
它是必需的布爾值,但這些是字節! 我可以如何轉換?
如果有人知道已經有一個圖書館,請讓我知道。 謝謝。
在C中,任何非零表達式都隱含爲真,零爲假。在C#中,你需要做一個明確的比較:
if ((temp & 0x03) == 0)
和
while ((i!=0) && (n&0x01)==0 && (n&waitIRq)==0)
或者,你可以使用the .NET's Boolean structure:
bool isTempAppropriate = (temp & 0x03) == 0;
if(isTempAppropriate) { ... }
注意bool
只是語法糖System.Boolean
,和你可以使用the var
keyword而不是bool
。
https://msdn.microsoft.com/en-us/library/system.collections.bitarray(v=vs.110).aspx – Abdullah
您是否嘗試過使用Convert.ToBoolean()? – Chawin