具有多个值的常量?

时间:2016-05-24 15:03:26

标签: vb.net const

我偶然发现了那段特殊的代码,我觉得它有点难以理解。

Public Const FILE_SHARE_READ as Integer = 1  
Public Const FILE_SHARE_WRITE as Integer = 2  
Public Const FILE_SHARE_DELETE as Integer = 4  
Public Const FILE_SHARE_ALL as Integer = FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE 

我测试了一下,并没有得到更多的见解:
无论如何,FILE_SHARE_ALL总是等于4 有什么我想念的吗?

编辑:感谢您的帮助,我发现了问题 - > 代码18 在我的测试仪中复制粘贴错误

Public Const FILE_SHARE_ALL as Integer = FILE_SHARE_DELETE or FILE_SHARE_DELETE or FILE_SHARE_DELETE 

不要评判我!

1 个答案:

答案 0 :(得分:3)

Public Const FILE_SHARE_READ as Integer = 1  
Public Const FILE_SHARE_WRITE as Integer = 2  
Public Const FILE_SHARE_DELETE as Integer = 4  
Public Const FILE_SHARE_ALL as Integer = FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE 

Or这里是Bitwise or,这意味着FILE_SHARE_ALL应该以7结果,因为:

int 1 ' = binary 001
int 2 ' = binary 010
int 4 ' = binary 100  

001 | 010 | 100 = 111 ' equals int 7.