你如何在C#中返回“不是UINT”?(How do you return 'not uint

2019-07-30 18:36发布

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

Return (Not (crc32Result))

我试图将其转换为C#,这是我所:

return (!(crc32Result));

不过,我得到一个编译错误:

编译器错误信息:CS0023:运算符“!” 不能被应用于类型“UINT”的操作数

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

谢谢!

Answer 1:

它看起来像你正在尝试做的是扭转crc32result的位。 如果是这样,你想要的波浪符〜。

return (~crc32Result);

参考这个问题。



Answer 2:

在C#中,感叹号(!)用于翻转一个布尔变量。 你们是不是要治疗UINT上面一个布尔值,或执行一些其他的逆转(所有二进制位的逆转,也许)?

我建议,其中之一是你要寻找的解决方案:

return (!(bool)crc32Result);  // treating as bool (0 = false, anything else is true)

return (~crc32Result); //bitwise flipping for all


Answer 3:

试试这个:

return crc32Result == 0;

还是要对我做什么更清楚一点:

return !(crc32Result != 0);

什么是第二个例子确实是将其转换由委托人布尔逻辑“0为假,非零是真实的”。 所以,如果它不等于零,它将返回true。 然后我用了“!” 运营商做了“不”操作。 你给我的Visual Basic代码显然做的第一部分隐式(将C / C ++),但C#和Java不会。

但是,这是当且仅当你正在寻找从功能的布尔返回类型。 如果你正在做逐位反转,则需要以下内容:

return (~crc32Result);

在这种情况下,“〜”操作员执行转换到其他的位模式。



文章来源: How do you return 'not uint' in C#?