IPermission.Union(IPermission) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli iznin ve belirtilen iznin birleşimi olan bir izin oluşturur.
public:
System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public System.Security.IPermission? Union (System.Security.IPermission? target);
public System.Security.IPermission Union (System.Security.IPermission target);
abstract member Union : System.Security.IPermission -> System.Security.IPermission
Public Function Union (target As IPermission) As IPermission
Parametreler
- target
- IPermission
Geçerli izinle birleştirme izni. Geçerli izinle aynı türde olmalıdır.
Döndürülenler
Geçerli iznin ve belirtilen iznin birleşimini temsil eden yeni bir izin.
Özel durumlar
target
parametresi değil null
ve geçerli izinle aynı türde değil.
Örnekler
Aşağıdaki kod örneğinde yönteminin uygulanması gösterilmektedir Union . Bu kod örneği, sınıfı için IPermission sağlanan daha büyük bir örneğin parçasıdır.
// Return a new object that contains the union of 'this' and 'target'.
// Note: You do not have to implement this method.
// If you do not, the version
// in CodeAccessPermission does this:
// 1. If target is not null, a NotSupportedException is thrown.
// 2. If target is null, then Copy is called and
// the new object is returned.
public:
virtual IPermission^ Union(IPermission^ target) override
{
// If 'target' is null, then return a copy of 'this'.
if (target == nullptr)
{
return Copy();
}
// Both objects must be the same type.
SoundPermission^ soundPerm = VerifyTypeMatch(target);
// If 'this' or 'target' are unrestricted,
// return a new unrestricted permission.
if (specifiedAsUnrestricted || soundPerm->specifiedAsUnrestricted)
{
return Clone(true, SoundPermissionState::PlayAnySound);
}
// Return a new object with the calculated, unioned permission value.
return Clone(false, (SoundPermissionState)
Math::Max((int) stateFlags, (int) soundPerm->stateFlags));
}
// Return a new object that contains the union of 'this' and 'target'.
// Note: You do not have to implement this method. If you do not, the version
// in CodeAccessPermission does this:
// 1. If target is not null, a NotSupportedException is thrown.
// 2. If target is null, then Copy is called and the new object is returned.
public override IPermission Union(IPermission target)
{
// If 'target' is null, then return a copy of 'this'.
if (target == null) return Copy();
// Both objects must be the same type.
SoundPermission soundPerm = VerifyTypeMatch(target);
// If 'this' or 'target' are unrestricted, return a new unrestricted permission.
if (m_specifiedAsUnrestricted || soundPerm.m_specifiedAsUnrestricted)
return Clone(true, SoundPermissionState.PlayAnySound);
// Return a new object with the calculated, unioned permission value.
return Clone(false, (SoundPermissionState)
Math.Max((Int32)m_flags, (Int32)soundPerm.m_flags));
}
' Return a new object that contains the union of 'this' and 'target'.
' Note: You do not have to implement this method. If you do not, the version
' in CodeAccessPermission does this:
' 1. If target is not null, a NotSupportedException is thrown.
' 2. If target is null, then Copy is called and the new object is returned.
Public Overrides Function Union(ByVal target As IPermission) As IPermission
' If 'target' is null, then return a copy of 'this'.
If target Is Nothing Then
Return Copy()
End If
' Both objects must be the same type.
Dim soundPerm As SoundPermission = VerifyTypeMatch(target)
' If 'this' or 'target' are unrestricted, return a new unrestricted permission.
If m_specifiedAsUnrestricted OrElse soundPerm.m_specifiedAsUnrestricted Then
Return Clone(True, SoundPermissionState.PlayAnySound)
End If
' Return a new object with the calculated, unioned permission value.
Return Clone(False, CType(Math.Max(CType(m_flags, Int32), CType(soundPerm.m_flags, Int32)), SoundPermissionState))
End Function 'Union
Açıklamalar
çağrısının Union sonucu, hem geçerli izin hem de belirtilen izinle temsil edilen tüm işlemleri temsil eden bir izindir. her iki izni de geçen tüm talepler birleşimlerini geçirir.
Yönteminin tüm uygulamaları için aşağıdaki deyimlerin Union true olması gerekir.
X
ve Y
olmayan null
nesneleri temsil IPermission eder.
X
. Union(X
), ile aynı değereX
sahip bir nesne döndürür.X
. Union(Y
), tarafındanY
döndürülen nesneyle aynı değere sahip bir nesne döndürür. Birleşim(X
).X
. Union(null
), ile aynı değereX
sahip bir nesne döndürür.