T. *_*P. 0 c# vb.net pipe equivalent operator-keyword
在VB.Net中是否有相当于C#的管道运算符(|)?
我从这里有一些代码如何为我的应用程序为所有用户创建的文件授予完全权限?
它在C#中,我想将其转换为VB.Net.我到目前为止(VS说有一个错误:| InheritanceFlags.ContainerInherit):
Sub ZugriffsrechteEinstellen()
Dim dInfo As New DirectoryInfo(strPfadSpracheINI)
Dim dSecurity As New DirectorySecurity
dSecurity = dInfo.GetAccessControl()
dSecurity.AddAccessRule(New FileSystemAccessRule(New SecurityIdentifier(WellKnownSidType.WorldSid, Nothing), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow))
dInfo.SetAccessControl(dSecurity)
End Sub
Run Code Online (Sandbox Code Playgroud)
相当于Or.
InheritanceFlags.ObjectInherit Or InheritanceFlags.ContainerInherit
Run Code Online (Sandbox Code Playgroud)
它将在操作数之间执行按位"或"操作.
例如,如果您有以下枚举
C#:
enum Values
{
None = 0,
Odd = 1,
Even = 2,
All = 3
}
Run Code Online (Sandbox Code Playgroud)
VB:
Enum Values
None = 0
Odd = 1
Even = 2
All = 3
End Enum
Run Code Online (Sandbox Code Playgroud)
Values.Odd | Values.Even(Values.Odd Or Values.Even)的结果是Values.All.这是因为Odd = 1 是01在二进制表示Even = 2是10和01 or 10等于11是3 (All).