質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

1回答

5493閲覧

C#でジェネリックなデリゲートを引数とするメソッドについて

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2017/08/23 11:57

編集2017/08/24 09:16

いつもお世話になります。

主題の件ですが、
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というのを追加しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

c#

1void Foo(MyDelegate<object> myDelegate) 2{ 3 myDelegate(2); 4 myDelegate("sssss"); 5 myDelegate(null); 6}

これでどうですか?

投稿2017/08/23 15:32

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/24 09:49

回答ありがとうございます。 教えて頂いた方法で質問した内容は実現できました。 ですが、自分がやりたかったことがうまく質問できていませんでした。 改めて質問をさせて頂きます。 この質問に関しては正しい回答を頂けましたので、解決済みとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問