ReflectionPermission.Intersect メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As ReflectionPermission Dim target As IPermission Dim returnValue As IPermission returnValue = instance.Intersect(target)
戻り値
現在のアクセス許可と指定したアクセス許可の積集合を表す新しいアクセス許可。積集合が空の場合、この新しいアクセス許可は null 参照 (Visual Basic では Nothing) です。


2 つのアクセス許可の積集合となるアクセス許可には、両方に共通する操作の集合が記述されています。2 つのアクセス許可を要求し、その両方について要求が満たされる場合にだけ、それらの積集合を表すアクセス許可に対する要求も満たされます。

Private Function IntersectDemo() As Boolean Dim returnValue As Boolean = True Dim reflection1, reflection2 As ReflectionPermissionFlag Dim reflectionPerm1, reflectionPerm2, reflectionPerm3 As ReflectionPermission Dim reflectionGen1 As New ReflectionGenerator() Dim reflectionGen2 As New ReflectionGenerator() reflectionGen1.ResetIndex() While reflectionGen1.CreateReflection(reflection1) reflectionPerm1 = New ReflectionPermission(reflection1) Console.WriteLine("**********************************************************" & ControlChars.Lf) reflectionGen2.ResetIndex() While reflectionGen2.CreateReflection(reflection2) reflectionPerm2 = New ReflectionPermission(reflection2) reflectionPerm3 = CType(reflectionPerm1.Intersect(reflectionPerm2), ReflectionPermission) If Not (reflectionPerm3 Is Nothing) Then Console.WriteLine(("The intersection of " & reflection1.ToString() & " and " _ & reflection2.ToString() & " = " _ & CType(reflectionPerm3, ReflectionPermission).Flags.ToString())) Else Console.WriteLine(("The intersection of " & reflection1.ToString() & " and " _ & reflection2.ToString() & " is null.")) End If ContinueWhile2: End While ContinueWhile1: End While Return returnValue End Function 'IntersectDemo
private bool IntersectDemo() { bool returnValue = true; ReflectionPermissionFlag reflection1, reflection2; ReflectionPermission reflectionPerm1, reflectionPerm2, reflectionPerm3; ReflectionGenerator reflectionGen1 = new ReflectionGenerator(); ReflectionGenerator reflectionGen2 = new ReflectionGenerator(); reflectionGen1.ResetIndex(); while (reflectionGen1.CreateReflection(out reflection1)) { reflectionPerm1 = new ReflectionPermission(reflection1); Console.WriteLine("**********************************************************\n"); reflectionGen2.ResetIndex(); while (reflectionGen2.CreateReflection(out reflection2)) { reflectionPerm2 = new ReflectionPermission(reflection2); reflectionPerm3 = (ReflectionPermission)reflectionPerm1.Intersect(reflectionPerm2); if (reflectionPerm3 != null) { Console.WriteLine("The intersection of " + reflection1 + " and " + reflection2 + " = " + ((ReflectionPermission)reflectionPerm3).Flags.ToString()); } else { Console.WriteLine("The intersection of " + reflection1 + " and " + reflection2 + " is null."); } } } return returnValue; }
bool IntersectDemo() { bool returnValue = true; ReflectionPermissionFlag reflection1; ReflectionPermissionFlag reflection2; ReflectionPermission^ reflectionPerm1; ReflectionPermission^ reflectionPerm2; ReflectionPermission^ reflectionPerm3; ReflectionGenerator^ reflectionGen1 = gcnew ReflectionGenerator; ReflectionGenerator^ reflectionGen2 = gcnew ReflectionGenerator; reflectionGen1->ResetIndex(); while ( reflectionGen1->CreateReflection( &reflection1 ) ) { reflectionPerm1 = gcnew ReflectionPermission( reflection1 ); Console::WriteLine( "**********************************************************\n" ); reflectionGen2->ResetIndex(); while ( reflectionGen2->CreateReflection( &reflection2 ) ) { reflectionPerm2 = gcnew ReflectionPermission( reflection2 ); reflectionPerm3 = dynamic_cast<ReflectionPermission^>(reflectionPerm1->Intersect( reflectionPerm2 )); if ( reflectionPerm3 != nullptr ) { Console::WriteLine( "The intersection of {0} and {1} = {2}", reflection1, reflection2, (dynamic_cast<ReflectionPermission^>(reflectionPerm3))->Flags ); } else { Console::WriteLine( "The intersection of {0} and {1} is null", reflection1, reflection2 ); } } } return returnValue; }
private boolean IntersectDemo() { boolean returnValue = true; ReflectionPermissionFlag reflection1[] = new ReflectionPermissionFlag[1]; ReflectionPermissionFlag reflection2[] = new ReflectionPermissionFlag[1]; ReflectionPermission reflectionPerm1[] = new ReflectionPermission[1]; ReflectionPermission reflectionPerm2[] = new ReflectionPermission[1]; ReflectionPermission reflectionPerm3; ReflectionGenerator reflectionGen1 = new ReflectionGenerator(); ReflectionGenerator reflectionGen2 = new ReflectionGenerator(); reflectionGen1.ResetIndex(); while(reflectionGen1.CreateReflection(reflectionPerm1, reflection1)) { if (reflectionPerm1[0] == null) { continue ; } Console.WriteLine("***************************************" + "*******************\n"); reflectionGen2.ResetIndex(); while(reflectionGen2.CreateReflection(reflectionPerm2, reflection2)) { if (reflectionPerm2[0] == null) { continue ; } reflectionPerm3 =((ReflectionPermission)( reflectionPerm1[0].Intersect(reflectionPerm2[0]))); if (reflectionPerm3 != null) { Console.WriteLine(("The intersection of " + reflection1[0] + " and " + reflection2[0] + " = " + ((ReflectionPermission)(reflectionPerm3)). get_Flags().ToString())); } else { Console.WriteLine(("The intersection of " + reflection1[0] + " and " + reflection2[0] + " is null.")); } } } return returnValue ; } //IntersectDemo

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ReflectionPermission.Intersect メソッドのページへのリンク