Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# vb6的十六进制值常量?_C#_Vb6_Vb6 Migration - Fatal编程技术网

C# vb6的十六进制值常量?

C# vb6的十六进制值常量?,c#,vb6,vb6-migration,C#,Vb6,Vb6 Migration,试图将其转换为C#,但在设置为另一个常量时,会混淆它或是某些十六进制值常量 Public Const STANDARD_RIGHTS_ALL = &H1F0000 Public Const SYNCHRONIZE = &H100000 Public Const KEY_CREATE_LINK = &H20 Public Const KEY_CREATE_SUB_KEY = &H4 Public Const KEY_ENUMERATE_SUB_KEYS = &

试图将其转换为C#,但在设置为另一个常量时,会混淆它或是某些十六进制值常量

Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const SYNCHRONIZE = &H100000
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
                      KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _
                     Or KEY_NOTIFY) And (Not SYNCHRONIZE))
c#?:


使用位运算|、&、和~作为VB
的等价物。 注意,我将类型指定为
uint
(无符号整数),以避免由于.NET()中的
int
类型的内部表示而产生副作用


在C#中,使用位运算符|(for Or)、&(for And)和!(不适用)只需使用
而不是
,但它表示在比较两个整数时不能使用| |。将双精度| |替换为单精度|@user3542679,这就是我们建议使用位(单管道)运算符的原因:)在这里做什么?公共常量int READ_CONTROL=0x20000公共常量int STANDARD_RIGHTS|READ=READ||CONTROL;谢谢你,这是一个完美的答案=]倒转每一位(我在最初的评论中错误地建议了!运算符,这是布尔的逻辑否定)。
public const int KEY_READ = ((STANDARD_RIGHTS_READ || KEY_QUERY_VALUE || KEY_ENUMERATE_SUB_KEYS || KEY_NOTIFY) & (!SYNCHRONIZE));
public const uint READ_CONTROL = 0x20000;
public const uint STANDARD_RIGHTS_READ = READ_CONTROL;
public const uint STANDARD_RIGHTS_ALL = 0x1F0000;
public const uint SYNCHRONIZE = 0x100000;
public const uint KEY_CREATE_LINK = 0x20;
public const uint KEY_CREATE_SUB_KEY = 0x4;
public const uint KEY_ENUMERATE_SUB_KEYS = 0x8;
public const uint KEY_NOTIFY = 0x10;
public const uint KEY_QUERY_VALUE = 0x1;
public const uint KEY_SET_VALUE = 0x2;
public const uint KEY_READ = (
    (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) 
    & (~SYNCHRONIZE)
);