EventInfo クラスとは? わかりやすく解説

EventInfo クラス

イベント属性取得しイベントメタデータアクセスできるようにします。

名前空間: System.Reflection
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
Public MustInherit Class
 EventInfo
    Inherits MemberInfo
    Implements _EventInfo
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
public abstract class EventInfo : MemberInfo,
 _EventInfo
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
public ref class EventInfo abstract : public
 MemberInfo, _EventInfo
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
public abstract class EventInfo extends MemberInfo
 implements _EventInfo
SerializableAttribute 
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.None) 
public abstract class EventInfo extends
 MemberInfo implements _EventInfo
解説解説

イベントデリゲート通じて使用されます。イベント リスナは、イベント ソースによってイベント発生したときに必ず呼び出されるイベント ハンドラ デリゲートインスタンス化ます。イベント ソース接続するために、イベント リスナはこのデリゲートイベント ソース呼び出しリスト追加しますイベント発生すると、イベント ハンドラ デリゲートinvoke メソッド呼び出されます。マルチキャスト イベント通知とシングルキャスト イベント通知両方サポートされています。Add メソッドRemove メソッドは、イベント関連付けられているイベント ハンドラ デリゲート クラスと同様、メタデータマークする必要があります

デリゲートは、オブジェクト指向関数ポインタです。C または C++ では、関数ポインタメソッドへの参照です。C または C++関数ポインタとは異なりデリゲートは、メソッドへの参照メソッドサポートするオブジェクトへの参照という 2 つ参照保持しますデリゲートは、メソッド宣言または継承するクラス型がわからなくても、メソッド呼び出すことができますデリゲート必要な情報は、メソッド戻り値の型とパラメータ リストだけです。

このイベント モデルは、シングルキャスト デリゲートでもマルチキャスト デリゲートでも同じよう機能しますデリゲートinvoke メソッド呼び出され場合メソッド呼び出し対象となるオブジェクト1 つだけです。マルチキャスト修飾子デリゲート宣言適用すると、そのデリゲートinvoke メソッド呼び出されたときに複数メソッド呼び出せるようになります

GetCustomAttributesinherit パラメータtrue のときに、EventInfo の ICustomAttributeProvider.GetCustomAttributes を呼び出すと、型階層検索されません。カスタム属性継承するには、System.Attribute を使用します

継承時の注意 EventInfo から継承する場合、GetAddMethod、GetRemoveMethod、GetRaiseMethod の各メンバオーバーライドする必要があります

使用例使用例
Imports System
Imports System.Reflection
Imports System.Security
Imports Microsoft.VisualBasic

' Compile this sample using the following command line:
' vbc type_getevent.vb /r:"System.Windows.Forms.dll" /r:"System.dll"

Class MyEventExample
    Public Shared Sub Main()
        Try
            ' Creates a bitmask comprising  BindingFlags.
            Dim myBindingFlags As BindingFlags
 = BindingFlags.Instance Or BindingFlags.Public _
                                                 Or BindingFlags.NonPublic
            Dim myTypeBindingFlags As Type
 = GetType(System.Windows.Forms.Button)
            Dim myEventBindingFlags As EventInfo
 = myTypeBindingFlags.GetEvent("Click", myBindingFlags)
            If Not (myEventBindingFlags Is
 Nothing) Then
                Console.WriteLine("Looking for the Click event
 in the Button class with the specified BindingFlags.")
                Console.WriteLine(myEventBindingFlags.ToString())
            Else
                Console.WriteLine("The Click event is not available
 with the Button class.")
            End If
        Catch e As SecurityException
            Console.WriteLine("An exception occurred.")
            Console.WriteLine("Message :" + e.Message)
        Catch e As ArgumentNullException
            Console.WriteLine("An exception occurred.")
            Console.WriteLine("Message :" + e.Message)
        Catch e As Exception
            Console.WriteLine("The following exception was raised
 : {0}", e.Message)
        End Try
    End Sub 'Main
End Class 'MyEventExample
using System;
using System.Reflection;
using System.Security;

class MyEventExample
{
    public static void Main()
    {  
        try
        {

            // Creates a bitmask based on BindingFlags.
            BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public
 | BindingFlags.NonPublic;
            Type myTypeBindingFlags = typeof(System.Windows.Forms.Button);
            EventInfo myEventBindingFlags = myTypeBindingFlags.GetEvent("Click"
,
 myBindingFlags);
            if(myEventBindingFlags != null)
            {
                Console.WriteLine("Looking for the Click
 event in the Button class with the specified
 BindingFlags.");
                Console.WriteLine(myEventBindingFlags.ToString());
            }
            else
                Console.WriteLine("The Click event is not available with the
 Button class.");
        }
        catch(SecurityException e)
        {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Message :"+e.Message);
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Message :"+e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("The following exception was raised : {0}"
,e.Message);
        }
    }
}
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>

using namespace System;
using namespace System::Reflection;
using namespace System::Security;
using namespace System::Windows::Forms;

int main()
{
   try
   {
      // Creates a bitmask based on BindingFlags.
      BindingFlags myBindingFlags = static_cast<BindingFlags>(BindingFlags::Instance
 | BindingFlags::Public | BindingFlags::NonPublic);
      Type^ myTypeBindingFlags = System::Windows::Forms::Button::typeid;
      EventInfo^ myEventBindingFlags = myTypeBindingFlags->GetEvent( "Click",
 myBindingFlags );
      if ( myEventBindingFlags != nullptr )
      {
         Console::WriteLine( "Looking for the Click event
 in the Button class with the specified BindingFlags."
 );
         Console::WriteLine( myEventBindingFlags );
      }
      else
            Console::WriteLine( "The Click event is not available with the Button
 class." );
   }
   catch ( SecurityException^ e ) 
   {
      Console::WriteLine( "An exception occurred." );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine( "An exception occurred." );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The following exception was raised : {0}", e->Message
 );
   }
}
import System.*;
import System.Reflection.*;
import System.Security.*;

class MyEventExample
{
    public static void main(String[]
 args)
    {
        try {
            // Creates a bitmask based on BindingFlags.
            BindingFlags myBindingFlags = BindingFlags.Instance
                | BindingFlags.Public | BindingFlags.NonPublic;
            Type myTypeBindingFlags = System.Windows.Forms.Button.class.ToType();
            EventInfo myEventBindingFlags = myTypeBindingFlags.GetEvent("Click"
,
                myBindingFlags);
            if (myEventBindingFlags != null)
 {
                Console.WriteLine("Looking for the Click
 event in the Button"
                    + " class with the specified BindingFlags.");
                Console.WriteLine(myEventBindingFlags.ToString());
            }
            else {
                Console.WriteLine("The Click event is not available with the"
                    + " Button class.");
            }
        }
        catch (SecurityException e) {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (ArgumentNullException e) {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine("The following exception was raised : {0}"
,
                e.get_Message());
        }
    } //main
} //MyEventExample
継承階層継承階層
System.Object
   System.Reflection.MemberInfo
    System.Reflection.EventInfo
スレッド セーフスレッド セーフ

この型は、マルチスレッド操作においてタイプ セーフです。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「EventInfo クラス」の関連用語

EventInfo クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



EventInfo クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS