IPermission.Intersect(IPermission) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy i zwraca uprawnienie, które jest skrzyżowaniem bieżącego uprawnienia i określonego uprawnienia.
public:
System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public System.Security.IPermission Intersect (System.Security.IPermission target);
public System.Security.IPermission? Intersect (System.Security.IPermission? target);
abstract member Intersect : System.Security.IPermission -> System.Security.IPermission
Public Function Intersect (target As IPermission) As IPermission
Parametry
- target
- IPermission
Uprawnienie do przecinania się z bieżącym uprawnieniem. Musi być tego samego typu co bieżące uprawnienie.
Zwraca
Nowe uprawnienie reprezentujące część wspólną bieżącego uprawnienia i określone uprawnienie. To nowe uprawnienie jest null , jeśli skrzyżowanie jest puste.
Wyjątki
Parametr target nie null jest i nie jest wystąpieniem tej samej klasy co bieżące uprawnienie.
Przykłady
W poniższym przykładzie kodu pokazano implementację Intersect metody . Ten przykład kodu jest częścią większego przykładu udostępnionego IPermission dla klasy .
// 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);
}
// 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 Overrides Function Intersect(ByVal target As IPermission) As IPermission
' If 'target' is null, return null.
If target Is Nothing Then
Return Nothing
End If
' Both objects must be the same type.
Dim soundPerm As SoundPermission = VerifyTypeMatch(target)
' If 'this' and 'target' are unrestricted, return a new unrestricted permission.
If m_specifiedAsUnrestricted AndAlso soundPerm.m_specifiedAsUnrestricted Then
Return Clone(True, SoundPermissionState.PlayAnySound)
End If
' Calculate the intersected permissions. If there are none, return null.
Dim val As SoundPermissionState = CType(Math.Min(CType(m_flags, Int32), CType(soundPerm.m_flags, Int32)), SoundPermissionState)
If val = 0 Then
Return Nothing
End If
' Return a new object with the intersected permission value.
Return Clone(False, val)
End Function 'Intersect
Uwagi
Przecięcie dwóch uprawnień to uprawnienie, które opisuje zestaw operacji, które opisują wspólne. Tylko żądanie, które przekazuje oba oryginalne uprawnienia, przejdą skrzyżowanie.
Następujące instrukcje muszą być prawdziwe dla wszystkich implementacji Intersect metody . X i Y reprezentują IPermission odwołania do obiektów, które nie nullsą .
X. Funkcja Intersect(X) zwraca wartość równąX.X. Funkcja Intersect(Y) zwraca tę samą wartość coY. Intersect(X).X. Funkcja Intersect(null) zwraca wartośćnull.