你如何在C#中返回’not uint’?

我有一些用VB编写的代码,内容如下:

Return (Not (crc32Result)) 

我正在尝试将其转换为C#,这就是我所拥有的:

 return (!(crc32Result)); 

但是我收到编译器错误:

编译器错误消息: CS0023:运算符’!’ 不能应用于’uint’类型的操作数

是否有一个不同的运营商我需要使用而不是这个?

谢谢!

看起来你想要做的就是扭转crc32result的位。 如果是这样,你想要代字号运算符〜。

 return (~crc32Result); 

参考这个问题。

在C#中,bang(!)用于翻转布尔变量。 您是否尝试将上面的uInt视为布尔值,或执行其他一些反转(可能是所有二进制数字的反转)?

我建议其中一个是您正在寻找的解决方案:

 return (!(bool)crc32Result); // treating as bool (0 = false, anything else is true) return (~crc32Result); //bitwise flipping for all 

试试这个:

 return crc32Result == 0; 

或者对我正在做的事情稍微清楚一点:

 return !(crc32Result != 0); 

第二个例子的作用是将主体“0为假,非零为真”将其转换为布尔值。 因此,如果它不等于零,它将返回true。 然后我用’!’ 操作员进行“非”操作。 您给出的Visual Basic代码显然是隐式地执行第一部分(就像C / C ++一样),但C#和Java不会。

但这是if和ONLY,如果你正在从函数中寻找一个布尔返回类型。 如果你正在进行逐步反转,那么你需要以下内容:

 return (~crc32Result); 

在这种情况下,’〜’运算符会转换为其他位模式。