期間從另一個人VB.net項目C#的一些代碼轉換,我曾經碰到過下面的代碼:VB.Net安定字節和雙
Public Sub New(ByVal lbytModuleAddress As Byte, ByVal lbytRelayStateMask As Byte)
Dim lintCounter As Integer
mbytModuleAddress = lbytModuleAddress
For lintCounter = 0 To 7
If lbytRelayStateMask And (2^lintCounter) Then
mblnRelayState(lintCounter) = True
Else
mblnRelayState(lintCounter) = False
End If
Next
End Sub
現在,中號試圖將其轉換爲C#,但我有點困惑,至於這一行的意義:
If lbytRelayStateMask And (2^lintCounter) Then
有人請賜教嗎?它似乎在幕後發生了一些事情(那個病人不得不進一步檢查),但是在我之前我只想澄清這個if語句的結果。
我正確地說,如果任何一個子表達式等於零,那麼它的錯誤,否則它的真實?對不起,我不太在VB.net上加快速度。
感謝馬丁。任何建議如何可以用C#重寫? – Simon
使用&(單!)基本用途AND。 ^將是Math.Pow(2,lintCounter)。請參閱http://msdn.microsoft.com/en-us/library/sbf85k1c(v=vs.71).aspx和http://msdn.microsoft.com/en-us/library/system.math.pow。 ASPX – Martin