接线员!不能应用于操作数ushort

时间:2011-06-02 20:27:41

标签: c# vb.net syntax

  

可能重复:
  How do you return 'not uint' in C#?

大家好,我正在尝试将以下内容从VB.NET转换为C#,我收到语法错误。

VB.NET:

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

C#:

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

最后一行给出了

的语法错误
  

运营商'!'无法应用   'ushort'类型的操作数

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:8)

如果您正在寻找按位NOT运算符(即翻转值中的每一位的运算符),请使用~!是逻辑NOT运算符(对于布尔逻辑)。

答案 1 :(得分:1)

!是布尔NOT运算符,即它只能应用于布尔值。如果您想要按位NOT使用~

答案 2 :(得分:1)

如果您想要按位补码,请使用~ operator

在c#中,!仅对否定布尔值有效。