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

时间:2015-05-13 16:32:18

标签: c# vb.net

有人可以告诉你这是什么c#equivelant:

&安培; H2

这里是VB的代码行:

direntEnableEntry.Properties("userAccountControl").Value = intVal And Not &H2

这里是转换后的代码:

   direntEnableEntry.Properties["userAccountControl"].Value = (intVal & !=0x2);

运营商'!'不能应用于类型' int'的操作数。

2 个答案:

答案 0 :(得分:9)

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

intVal & ~0x2

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

答案 1 :(得分:4)

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

有问题的行对此值执行按位NOT,然后在结果与intVal之间执行按位AND。在C#中,~是按位NOT运算符。所以这一行看起来像C#中的以下内容:

direntEnableEntry.Properties["userAccountControl"].Value = (intVal & ~0x2);

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