2011-06-02 20 views
1

可能重複:
How do you return 'not uint' in C#?運營商!不能應用到操作數USHORT

大家好,我試圖從VB.NET下轉換爲C#和我得到一個語法錯誤。

VB.NET:

Dim CurrentCRC As UInt16 
CurrentCRC = &HFFFF 
CurrentCRC = Not CurrentCRC 

C#: '!'

UInt16 currentCRC = default(UInt16); 
currentCRC = 0xFFFF; 
currentCRC = !currentCRC; 

最後一行是給我

操作的語法錯誤不能應用於'ushort'類型的 操作數

任何幫助將不勝感激!

+0

@charles - 是的,你說的對,對不起。搜索時沒有找到它:( – Kukoy 2011-06-02 20:44:55

回答

8

如果您正在尋找按位NOT運算符(即翻轉該值的每一位),請使用~!是邏輯NOT運算符(用於布爾邏輯)。

1

!是布爾操作符NOT,即它可能只適用於布爾值。如果你想按位NOT使用~

1

如果您想要按位補碼,請使用~ operator

在c#中,!僅適用於否定布爾值。