c# - 编译器错误 CS0019 : comparing two integers

标签 c#

在 C# 中,为什么第一个 if 语句给我一个编译错误,而第二个却没有?有人可以解释一下吗?

1) if(num & 1 == 1) { Console.WriteLine("测试"); }

这给我:错误 CS0019 运算符“&”不能应用于“int”和“bool”类型的操作数。

2)

var x = num & 1;
if (x == 1) { Console.WriteLine("Test"); }

这编译完美。

最佳答案

优先级为 ==。所以 num & 1 == 1 应该是 (num & 1) == 1

See here for operator precedence .

关于c# - 编译器错误 CS0019 : comparing two integers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840667/

相关文章:

c# - 添加新记录时如何启动外键?

c# - 如何在linq中包含()嵌套子实体

c# - 如何将项目添加到已在源代码管理中的解决方案中?

c# - 删除项目时的 ListBox List<T> 绑定(bind)问题

c# - 如何在C#中加密/解密url

c# - 使用 HttpResponseMessage 查看错误

c# - 如何使用SvcUtil生成wsdl?

c# - 如何清除 WPF 应用程序中的 WebBrowser 缓存?

c# - 如何替换 SQLite 表中的数据 - Android C# Xamarin

c# - 将代码翻译成类