将按位AND/NOT从VB.NET转换为C#

Soe*_*ike 5 c# vb.net c#-to-vb.net

原始代码(VB.NET):

curStyle = curStyle And (Not ES_NUMBER)
Run Code Online (Sandbox Code Playgroud)

更改代码(C#):

curStyle = curStyle & (!ES_NUMBER);
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误:

接线员'!' 不能应用于'long'类型的操作数

ES_NUMBER的数据类型为long.我尝试将其更改为int,string等.所有都不起作用.

我该如何解决这个问题?

Met*_*ght 9

And是一样的&; 你说得对 Not在a前面Long是一个按位NOT运算符.C#等价物是~.

C#代码将是:

curStyle = curStyle & (­~ES_NUMBER);
Run Code Online (Sandbox Code Playgroud)

检查c#OR(|),XOR(^),AND(&),NOT(〜)中的按位运算符,解释C#位运算符.