現在のアクセス許可インスタンスと指定したアクセス許可インスタンスの積集合を表すアクセス許可インスタンスを作成します。
Overrides Public Function Intersect( _
ByVal target As IPermission _) As IPermission Implements IPermission.Intersect
[C#]
public override IPermission Intersect(IPermissiontarget);
[C++]
public: IPermission* Intersect(IPermission* target);
[JScript]
public override function Intersect(
target : IPermission) : IPermission;
パラメータ
- target
現在のインスタンスと組み合わせる DnsPermission インスタンス。
戻り値
現在の DnsPermission インスタンスと指定した DnsPermission インスタンスの積集合を表す DnsPermission インスタンス。または、積集合がない場合は null 参照 (Visual Basic では Nothing) 。現在のインスタンスと target の両方が無制限である場合、このメソッドは新しい無制限の DnsPermission インスタンスを返します。それ以外の場合は、 null 参照 (Nothing) を返します。
実装
例外
例外の種類 | 条件 |
---|---|
ArgumentException | target が DnsPermission でも null 参照 (Visual Basic では Nothing) でもありません。 |
解説
Intersect メソッドは、 DnsPermission インスタンスを返します。これにより、現在の DnsPermission インスタンスと指定した DnsPermission インスタンスの両方によって定義されるアクセスが許可されます。要求が積集合の条件を満たすには、両方のアクセス許可が与えられている必要があります。
使用例
[Visual Basic, C#, C++] 現在のアクセス許可インスタンスと指定したアクセス許可インスタンスの積集合を表すアクセス許可インスタンスを作成する例を次に示します。
Public Sub useDns()
' Create a DnsPermission instance.
dnsPermission1 = New DnsPermission(PermissionState.Unrestricted)
dnsPermission2 = New DnsPermission(PermissionState.None)
' Check for permission.
dnsPermission1.Demand()
dnsPermission2.Demand()
Console.WriteLine("Attributes and Values of first DnsPermission instance :")
PrintKeysAndValues(dnsPermission1.ToXml().Attributes)
Console.WriteLine("Attributes and Values of second DnsPermission instance :")
PrintKeysAndValues(dnsPermission2.ToXml().Attributes)
Console.WriteLine("Union of both instances : ")
MyUnion()
Console.WriteLine("Intersection of both instances : ")
MyIntersection()
End Sub 'useDns
Private Sub PrintKeysAndValues(myList As Hashtable)
' Get the enumerator that can iterate through the hash table.
Dim myEnumerator As IDictionaryEnumerator = myList.GetEnumerator()
Console.WriteLine(ControlChars.Tab + "-KEY-" + ControlChars.Tab + "-VALUE-")
While myEnumerator.MoveNext()
Console.WriteLine(ControlChars.Tab + "{0}:" + ControlChars.Tab + "{1}", myEnumerator.Key, myEnumerator.Value)
End While
Console.WriteLine()
End Sub 'PrintKeysAndValues
Private Sub MyIntersection()
' Create a DnsPermission instance that is the intersection of the current
' DnsPermission instance and the specified DnsPermission instance.
Dim permission As DnsPermission = CType(dnsPermission1.Intersect(dnsPermission2), DnsPermission)
' Print the attributes and values of the intersection instance of DnsPermission.
PrintKeysAndValues(permission.ToXml().Attributes)
End Sub 'MyIntersection
[C#]
public void useDns() {
// Create a DnsPermission instance.
dnsPermission1 = new DnsPermission(PermissionState.Unrestricted);
dnsPermission2 = new DnsPermission(PermissionState.None);
// Check for permission.
dnsPermission1.Demand();
dnsPermission2.Demand();
Console.WriteLine("Attributes and Values of first DnsPermission instance :");
PrintKeysAndValues(dnsPermission1.ToXml().Attributes);
Console.WriteLine("Attributes and Values of second DnsPermission instance :");
PrintKeysAndValues(dnsPermission2.ToXml().Attributes);
Console.WriteLine("Union of both instances : ");
MyUnion();
Console.WriteLine("Intersection of both instances : ");
MyIntersection();
}
private void PrintKeysAndValues(Hashtable myList) {
// Get the enumerator that can iterate through the hash tabble.
IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
Console.WriteLine("\t-KEY-\t-VALUE-");
while (myEnumerator.MoveNext())
Console.WriteLine("\t{0}:\t{1}", myEnumerator.Key, myEnumerator.Value);
Console.WriteLine();
}
// Create a DnsPermission instance that is the intersection of current
// DnsPermission instance and the specified DnsPermission instance.
private void MyIntersection()
{
DnsPermission permission = (DnsPermission)dnsPermission1.Intersect(dnsPermission2);
// Print the attributes and the values of the intersection instance of
// DnsPermission.
PrintKeysAndValues(permission.ToXml().Attributes);
}
[C++]
public:
void useDns()
{
// Create a DnsPermission instance.
dnsPermission1 = new DnsPermission(PermissionState::Unrestricted);
dnsPermission2 = new DnsPermission(PermissionState::None);
// Check for permission.
dnsPermission1->Demand();
dnsPermission2->Demand();
Console::WriteLine(S"Attributes and Values of first DnsPermission instance :");
PrintKeysAndValues(dnsPermission1->ToXml()->Attributes);
Console::WriteLine(S"Attributes and Values of second DnsPermission instance :");
PrintKeysAndValues(dnsPermission2->ToXml()->Attributes);
Console::WriteLine(S"Union of both instances : ");
MyUnion();
Console::WriteLine(S"Intersection of both instances : ");
MyIntersection();
}
private:
void PrintKeysAndValues(Hashtable* myList)
{
// Get the enumerator that can iterate through the hash tabble.
IDictionaryEnumerator* myEnumerator = myList->GetEnumerator();
Console::WriteLine(S"\t-KEY-\t-VALUE-");
while (myEnumerator->MoveNext())
Console::WriteLine(S"\t {0}:\t {1}",
myEnumerator->Key, myEnumerator->Value);
Console::WriteLine();
}
// Create a DnsPermission instance that is the intersection of current
// DnsPermission instance and the specified DnsPermission instance.
private:
void MyIntersection()
{
DnsPermission* permission =
dynamic_cast<DnsPermission*>(dnsPermission1->Intersect(dnsPermission2));
// Print the attributes and the values of the intersection instance of
// DnsPermission.
PrintKeysAndValues(permission->ToXml()->Attributes);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard