いつもお世話になります。
主題の件ですが、
C#にて、ジェネリックな引数を持つデリゲートを以下のように定義します。
C#
1delegate void MyDelegate<T>(T arg);
このデリゲートを引数として持つメソッドを定義し、そのメソッド内でジェネリックにデリゲートを使用したいです。しかし、うまくいきません。
言葉で言っても伝わりにくいと思うので、以下のような感じです。
C#
1clas SampleClass 2{ 3 public int x; 4 public int y; 5 6 overrode public string ToString() 7 { 8 return x.ToString() + y.ToString(); 9 } 10} 11 12void Bar<T>(T a) 13{ 14 Console.WriteLine(a.ToString()); 15} 16 17void Baz<T>(T a) 18{ 19 Console.WriteLine(a.GetType().ToString()); 20} 21 22// これはコンパイルが通らない 23void Foo(MyDelegate myDelegate) 24{ 25 myDelegate<int>(1); 26 myDelegate<string>("sssss"); 27 myDelegate<SampleClass>(new SampleClass{x=1, y=1}); 28} 29 30void Hoge() 31{ 32 Foo(Bar); 33 Foo(Baz); 34}
上記のようなことをするための良い方法はないでしょうか。
よろしくお願い致します。
<補足>
質問がよくなかったので、SampleClass
というのを追加しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/24 09:49
退会済みユーザー
2017/08/24 10:04