Typeクラスを使って型がデリゲート型かどうかを調べる 言語: C# VB Typeクラスには型がデリゲート型かどうかを調べるIsDelegateのようなプロパティは用意されていません。 Typeがデリゲート型を表すかどうかを調べたい場合は以下のような方法をとることができます。 Typeクラスを使って型がデリゲート型かどうかを調べる すべて選択してコピー ダウンロード 行番号を表示する using System; class Sample { static bool IsDelegate(Type t) { // 型がDelegate型またはDelegate型の派生クラスの場合はデリゲート型と判定する return t.IsSubclassOf(typeof(Delegate)) || t.Equals(typeof(Delegate)); } static void Main() { foreach (var t in new[] { typeof(EventHandler), typeof(Action<,>), typeof(Delegate), typeof(MulticastDelegate), typeof(ICloneable), }) { Console.WriteLine("IsDelegate({0}) = {1}", t, IsDelegate(t)); } } } 実行結果 IsDelegate(System.EventHandler) = True IsDelegate(System.Action`2[T1,T2]) = True IsDelegate(System.Delegate) = True IsDelegate(System.MulticastDelegate) = True IsDelegate(System.ICloneable) = False 関連するページ アセンブリ内のすべての型情報を取得する アセンブリから他アセンブリに転送された型情報を取得する Typeクラスを使って型の分類を行う Typeクラスを使って型が実装しているインターフェイスを調べる Typeクラスを使って型が特定のインターフェイスを実装しているか・代入可能かどうか調べる ジェネリック型における型パラメータの型情報を取得する ジェネリックメソッドの型パラメータを取得する