System.Security.Permissions.ResourcePermissionBase.Union C# (CSharp) Method

Union() public method

public Union ( IPermission target ) : IPermission
target IPermission
return IPermission
        public override IPermission Union(IPermission target) {
            if (target == null)
                return this.Copy();
        
            if (target.GetType() != this.GetType())                                                 
                throw new ArgumentException(SR.GetString(SR.PermissionTypeMismatch), "target");
                        
            ResourcePermissionBase targetPermission = (ResourcePermissionBase)target;                                        
            ResourcePermissionBase newPermission = null;
            if (this.IsUnrestricted() || targetPermission.IsUnrestricted()) {
                newPermission = CreateInstance();
                newPermission.isUnrestricted = true;
            }
            else {
                Hashtable newPermissionRootTable = (Hashtable)UnionOfContents(this.rootTable, targetPermission.rootTable);
                if (newPermissionRootTable != null) {
                    newPermission = CreateInstance();
                    newPermission.rootTable = newPermissionRootTable;
                }
            }
            return newPermission;
        }