&;的C#等价物是什么;H2?
有人能告诉我这方面的c#等价物是什么吗: &氢 下面是VB中的一行代码:&;的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前缀表示十六
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