指定した静的メソッドを表すために、指定した型のデリゲートを作成します。
Overloads Public Shared Function CreateDelegate( _
ByVal type As Type, _ ByVal method As MethodInfo _) As Delegate
[C#]
public static Delegate CreateDelegate(Typetype,MethodInfomethod);
[C++]
public: static Delegate* CreateDelegate(Type* type,MethodInfo* method);
[JScript]
public static function CreateDelegate(
type : Type,method : MethodInfo) : Delegate;
パラメータ
- type
作成するデリゲートの Type 。 - method
デリゲートを作成する対象の静的メソッドについて説明する MethodInfo 。
戻り値
指定した静的メソッドを表すための、指定した型のデリゲート。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | type が null 参照 (Visual Basic では Nothing) です。
または method が null 参照 (Nothing) です。 |
ArgumentException | type が Delegate または MulticastDelegate のどちらからも継承されていません。
または method が静的メソッドではありません。 |
InvalidProgramException | type の Invoke メソッドが見つかりません。 |
MemberAccessException | 呼び出し元には、(たとえば、メソッドがプライベート メソッドの場合に) デリゲートが表すメソッドへのアクセス権がありません。 |
MethodAccessException | method が現在のアセンブリ外にあり、呼び出し元には、 method を格納しているアセンブリへの ReflectionPermission がありません。 |
解説
このメソッドは、静的メソッドのデリゲートだけを作成します。インスタンス メソッドとは、クラスのインスタンスに関連付けられるメソッドです。静的メソッドとは、クラス自体に関連付けられるメソッドです。
クラスを表す Type を取得するには、そのクラスの (名前空間を含む) 完全限定名で Type.GetType メソッドを使用します。たとえば、"System.Threading.ThreadStart" を Type.GetType に渡すと、 ThreadStart クラスの Type が返されます。
必要条件
プラットフォーム: 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
.NET Framework セキュリティ:
- ReflectionPermissionFlag (デリゲート (具体的には MemberAccess) が表すメソッドにアクセスするために必要なアクセス許可)
- ReflectionPermission (Type.InvokeMember 機構を通じて遅延バインディングが呼び出されるときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
参照
Delegate クラス | Delegate メンバ | System 名前空間 | Delegate.CreateDelegate オーバーロードの一覧 | Type | MulticastDelegate | ReflectionPermission | MethodInfo