情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Type.GetEvent メソッド (String)

2013/12/12

指定したパブリック イベントを表す EventInfo オブジェクトを返します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

'宣言
Public Function GetEvent ( _
	name As String _
) As EventInfo

パラメーター

name
型: System.String
現在の Type で宣言または継承されているイベントの名前を格納する String

戻り値

型: System.Reflection.EventInfo
現在の Type で宣言または継承されている指定パブリック イベントが存在する場合は、そのイベントを表す EventInfo オブジェクト。それ以外の場合は Nothing

例外条件
ArgumentNullException

nameNothing です。

パブリックなメソッドまたはアクセサーが少なくとも 1 つはあるイベントは、リフレクションに対してパブリックであると見なされます。それ以外の場合、イベントはプライベートと見なされ、BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (Visual Basic では Or を使用して値を組み合わせる) を使用して取得する必要があります。

name の検索では大文字と小文字が区別されます。検索には、public static および public のインスタンス イベントが含まれます。

型に対するリフレクション時に Get メソッドによって返される基本クラスのメンバーを次の表に示します。

メンバー型

静的

非静的

コンストラクター

いいえ

いいえ

フィールド

いいえ

はい。フィールドは常に名前と署名によって隠ぺいされます。

イベント

該当なし

共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。

メソッド

いいえ

はい。メソッド (仮想メソッドと非仮想メソッドの両方) は、名前によって隠ぺいすることも、名前と署名によって隠ぺいすることもできます。

入れ子にされた型

いいえ

いいえ

プロパティ

該当なし

共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。

メモ:

  1. 名前と署名による隠ぺいでは、カスタム修飾子、戻り値の型、パラメーターの型、sentinel、およびアンマネージ呼び出し規約を含めて、署名のすべての部分が判断の対象となります。これはバイナリ比較です。

  2. リフレクションの場合、プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスに get アクセサーと set アクセサーの両方を持つプロパティがあり、派生クラスには get アクセサーしかない場合、派生クラスのプロパティにより基本クラスのプロパティが隠ぺいされ、基本クラスの set アクセサーにはアクセスできません。

  3. カスタム属性は、共通型システムの一部ではありません。

現在の Type が構築ジェネリック型を表している場合、このメソッドは、型パラメーターを適切な型の引数で置き換えて EventInfo を返します。

現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメーターを表している場合、このメソッドはクラス制約のイベントを検索します。

次の例では、指定したイベントに対する EventInfo オブジェクトを取得します。

メモメモ:

この例を実行するには、「Windows Phone での静的 TextBlock コントロールのあるコード例のビルド」を参照してください。


Imports System.Reflection

Class Example

    Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

        Dim myType As Type = outputBlock.GetType()

        Dim myEvent As EventInfo = myType.GetEvent("MouseLeftButtonUp")

        If Not (myEvent Is Nothing) Then
            outputBlock.Text &= "Looking for the MouseLeftButtonUp event in the " & _
                myType.FullName & " class." & vbCrLf
            outputBlock.Text &= myEvent.ToString() & vbCrLf
        Else
            outputBlock.Text &= "The MouseLeftButtonUp event is not found in the " & _
                myType.FullName & " class." & vbCrLf
        End If

   End Sub 
End Class 

' This example produces the following output:
'
'Looking for the MouseLeftButtonUp event in the System.Windows.Controls.TextBlock class.
'System.Windows.Input.MouseButtonEventHandler MouseLeftButtonUp


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: