是否有相当于C#的| VB.Net中的运算符?

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)

Ale*_*der 8

相当于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 = 101在二进制表示Even = 21001 or 10等于113 (All).