&;的C#等价物是什么;H2?

&;的C#等价物是什么;H2?,c#,vb.net,C#,Vb.net,有人能告诉我这方面的c#等价物是什么吗: &氢 下面是VB中的一行代码: direntEnableEntry.Properties("userAccountControl").Value = intVal And Not &H2 以下是转换后的代码: direntEnableEntry.Properties["userAccountControl"].Value = (intVal & !=0x2); 接线员‘!’不能应用于C#中“int”类型的操作数,0x前缀表示十六

有人能告诉我这方面的c#等价物是什么吗:

&氢

下面是VB中的一行代码:

direntEnableEntry.Properties("userAccountControl").Value = intVal And Not &H2
以下是转换后的代码:

   direntEnableEntry.Properties["userAccountControl"].Value = (intVal & !=0x2);
接线员‘!’不能应用于C#中“int”类型的操作数,
0x
前缀表示十六进制表示法。因此,VB的
&H2
的等价物是
0x2

该行对该值执行按位NOT,然后在结果和
intVal
之间执行按位and。在C#中,
~
是按位NOT运算符。因此,这一行在C#中类似于以下内容:

请注意,
(和
!=
)是逻辑NOT,与按位NOT不同。

在C#中,
0x
前缀表示十六进制表示法。因此,VB的
&H2
的等价物是
0x2

该行对该值执行按位NOT,然后在结果和
intVal
之间执行按位and。在C#中,
~
是按位NOT运算符。因此,这一行在C#中类似于以下内容:


请注意,
(和
!=
)是逻辑NOT,它不同于按位NOT。

intVal和NOT&H2
相当于以下C#:


您已正确翻译了
0x2
十六进制文字,但VB.NET中的
Not
(当应用于数值时)对应于按位
~
运算符,而不是
=
(如果我没记错的话,在VB中是

intVal和Not&H2
等同于以下C#:


您已正确翻译了
0x2
十六进制文字,但VB.NET中的
Not
(当应用于数值时)对应于按位
~
运算符,而不是
=
(如果我没记错的话,在VB中是

我认为问题不在于
&H2
,而在于
(intVal&!=0x2)
表达式。其中一个运算符不属于。请尝试将
(intVal&!=0x2)
更改为
(intVal!=0x2)
@cramopy:您的建议似乎是随机的,没有考虑原始VB代码。我认为问题不在于
&H2
,而在于
(intVal&!=0x2)
表达式。其中一个运算符不属于。请尝试将
(intVal&!=0x2)
更改为
(intVal!=0x2)
@cramopy:你的建议似乎是随机的,根本不考虑原始VB代码。
direntEnableEntry.Properties["userAccountControl"].Value = (intVal & ~0x2);
intVal & ~0x2