다음을 통해 공유


IPermission.Intersect 메서드

현재 사용 권한과 지정된 사용 권한의 교집합에 해당하는 사용 권한을 만들어 반환합니다.

네임스페이스: System.Security
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Function Intersect ( _
    target As IPermission _
) As IPermission
‘사용 방법
Dim instance As IPermission
Dim target As IPermission
Dim returnValue As IPermission

returnValue = instance.Intersect(target)
IPermission Intersect (
    IPermission target
)
IPermission^ Intersect (
    IPermission^ target
)
IPermission Intersect (
    IPermission target
)
function Intersect (
    target : IPermission
) : IPermission

매개 변수

  • target
    현재 사용 권한과 공통되는 사용 권한입니다. 이 사용 권한은 현재 사용 권한과 형식이 같아야 합니다.

반환 값

현재 사용 권한과 지정된 사용 권한의 교집합에 해당하는 권한을 나타내는 새 사용 권한입니다. 교집합이 비어 있으면 새 사용 권한은 Null 참조(Visual Basic의 경우 Nothing)입니다.

예외

예외 형식 조건

ArgumentException

target 매개 변수가 Null 참조(Visual Basic의 경우 Nothing)이 아니고 현재 사용 권한과 동일한 클래스의 인스턴스가 아닌 경우

설명

두 사용 권한의 교집합에 해당하는 권한은 이들이 공통으로 설명하는 작업 집합을 설명하는 사용 권한입니다. 원래의 두 사용 권한을 모두 통과하는 요청은 두 사용 권한의 교집합에 해당하는 권한을 통과합니다.

다음 문은 Intersect 메서드의 모든 구현에 대해 참이어야 합니다. X 및 Y는 Null 참조(Visual Basic의 경우 Nothing)이 아닌 IPermission 개체 참조를 나타냅니다.

  • X .Intersect( X )는 X와 같은 값을 반환합니다.

  • X .Intersect( Y )는 Y .Intersect( X )와 같은 값을 반환합니다.

  • X .Intersect( Null 참조(Visual Basic의 경우 Nothing) )는 Null 참조(Visual Basic의 경우 Nothing)을 반환합니다.

예제

다음 코드 예제에서는 Intersect 메서드를 구현하는 방법을 보여 줍니다. 이 코드 예제는 IPermission 클래스에 대해 제공되는 보다 큰 예제의 일부입니다.

// Return a new object that contains the intersection of 'this' and 'target'.
public override IPermission Intersect(IPermission target) 
{
    // If 'target' is null, return null.
    if (target == null) return null;

    // Both objects must be the same type.
    SoundPermission soundPerm = VerifyTypeMatch(target);

    // If 'this' and 'target' are unrestricted, return a new unrestricted permission.
    if (m_specifiedAsUnrestricted && soundPerm.m_specifiedAsUnrestricted)
        return Clone(true, SoundPermissionState.PlayAnySound);

    // Calculate the intersected permissions. If there are none, return null.
    SoundPermissionState val = (SoundPermissionState)
        Math.Min((Int32) m_flags, (Int32) soundPerm.m_flags);
    if (val == 0) return null;

    // Return a new object with the intersected permission value.
    return Clone(false, val);
}
    // Return a new object that contains the intersection 
    // of 'this' and 'target'.
public:
    virtual IPermission^ Intersect(IPermission^ target) override
    {
        // If 'target' is null, return null.
        if (target == nullptr)
        {
            return nullptr;
        }

        // Both objects must be the same type.
        SoundPermission^ soundPerm = VerifyTypeMatch(target);

        // If 'this' and 'target' are unrestricted, 
        // return a new unrestricted permission.
        if (specifiedAsUnrestricted && soundPerm->specifiedAsUnrestricted)
        {
            return Clone(true, SoundPermissionState::PlayAnySound);
        }

        // Calculate the intersected permissions. 
        // If there are none, return null.
        SoundPermissionState minimumPermission = (SoundPermissionState)
            Math::Min((int) stateFlags, (int) soundPerm->stateFlags);
        if ((int)minimumPermission == 0)
        {
            return nullptr;
        }

        // Return a new object with the intersected permission value.
        return Clone(false, minimumPermission);
    }

플랫폼

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

IPermission 인터페이스
IPermission 멤버
System.Security 네임스페이스