UIPermission.Union(IPermission) 方法

定义

创建一个权限,该权限是当前权限和指定权限的并集。Creates a permission that is the union of the permission and the specified permission.

public:
 override System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public override System.Security.IPermission Union (System.Security.IPermission target);
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Union (target As IPermission) As IPermission

参数

target
IPermission

与当前权限合并的权限。A permission to combine with the current permission. 它必须与当前权限属于同一类型。It must be the same type as the current permission.

返回

表示同时兼具当前权限和指定权限的新权限。A new permission that represents the union of the current permission and the specified permission.

异常

target 参数不为 null,并且与当前权限不属于同一类型。The target parameter is not null and is not of the same type as the current permission.

示例

下面的代码示例演示Union方法的行为。The following code example shows the behavior of the Union method. 此示例是为UIPermission类提供的更大示例的一部分。This example is part of a larger example provided for the UIPermission class.

备注

此代码示例旨在显示方法的行为,而不是演示方法的用法。The code example is intended to show the behavior of the method, not to demonstrate its use. 通常,权限类的方法由安全基础结构使用;它们通常不在应用程序中使用。In general, the methods of permission classes are used by the security infrastructure; they are not typically used in applications.

   // Union creates a new permission that is the union of the current permission
   // and the specified permission.
void UnionDemo()
{
    Console::WriteLine("\n************************  Union() Demo *************************\n");

    UIPermission ^ uiPerm1 = gcnew UIPermission(UIPermissionWindow::SafeTopLevelWindows);
    UIPermission ^ uiPerm2 = gcnew UIPermission(UIPermissionWindow::SafeSubWindows);

    UIPermission ^ p3 = dynamic_cast<UIPermission^>(uiPerm1->Union(uiPerm2));
    Console::WriteLine("   The union of {0} and  \n\t{1} = {2} ", uiPerm1->Window,
                               uiPerm2->Window, (nullptr != p3)?p3->Window.ToString():"null");
}
// Union creates a new permission that is the union of the current permission
// and the specified permission.
private static void UnionDemo()
{
    UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows);
    UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows);
    UIPermission p3 = (UIPermission)uiPerm1.Union(uiPerm2);
    if (p3 != null)
    {
        Console.WriteLine("The union of " + uiPerm1.Window.ToString() +
            " and \n\t" + uiPerm2.Window.ToString() + " is \n\t"
            + p3.Window.ToString() + "\n");

    }
    else
    {
        Console.WriteLine("The union of " + uiPerm1.Window.ToString() +
            " and \n\t" + uiPerm2.Window.ToString() + " is null.\n");
    }
}
' Union creates a new permission that is the union of the current permission
' and the specified permission.
Private Shared Sub UnionDemo()
    Dim uiPerm1 As New UIPermission(UIPermissionWindow.SafeTopLevelWindows)
    Dim uiPerm2 As New UIPermission(UIPermissionWindow.SafeSubWindows)
    Dim p3 As UIPermission = CType(uiPerm1.Union(uiPerm2), UIPermission)
    If Not (p3 Is Nothing) Then
        Console.WriteLine("The union of " + uiPerm1.Window.ToString() + " and " + vbLf + vbTab + uiPerm2.Window.ToString() + " is " + vbLf + vbTab + p3.Window.ToString() + vbLf)

    Else
        Console.WriteLine("The union of " + uiPerm1.Window.ToString() + " and " + vbLf + vbTab + uiPerm2.Window.ToString() + " is null." + vbLf)
    End If

End Sub

注解

调用的结果Union是一个权限,它表示当前权限表示的所有操作,以及由指定权限表示的所有操作。The result of a call to Union is a permission that represents all the operations represented by the current permission as well as all the operations represented by the specified permission. 具体而言,它表示当前权限和指定UIPermissionWindow权限UIPermissionClipboard中的和的最宽松值。Specifically, it represents the most permissive values of UIPermissionWindow and UIPermissionClipboard from those in the current permission and the specified permission.

适用于