我用VB编写一些代码,内容如下:
Return (Not (crc32Result))
我试图将其转换为C#,这是我所:
return (!(crc32Result));
不过,我得到一个编译错误:
编译器错误信息:CS0023:运算符“!” 不能被应用于类型“UINT”的操作数
是否有不同的运营商,我需要使用,而不是这一个?
谢谢!
我用VB编写一些代码,内容如下:
Return (Not (crc32Result))
我试图将其转换为C#,这是我所:
return (!(crc32Result));
不过,我得到一个编译错误:
编译器错误信息:CS0023:运算符“!” 不能被应用于类型“UINT”的操作数
是否有不同的运营商,我需要使用,而不是这一个?
谢谢!
它看起来像你正在尝试做的是扭转crc32result的位。 如果是这样,你想要的波浪符〜。
return (~crc32Result);
参考这个问题。
在C#中,感叹号(!)用于翻转一个布尔变量。 你们是不是要治疗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不会。
但是,这是当且仅当你正在寻找从功能的布尔返回类型。 如果你正在做逐位反转,则需要以下内容:
return (~crc32Result);
在这种情况下,“〜”操作员执行转换到其他的位模式。