C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 122 を表示中)
■73049 / )  異なる型制約のジェネリック メソッドを呼び出す方法?
□投稿者/ Tom (1回)-(2014/08/13(Wed) 23:24:07)

分類:[C#] 

2014/08/13(Wed) 23:24:32 編集(投稿者)

C#でジェネリックを使った関数を作っているのですが、
次のように、あるジェネリック メソッドから
異なる型制約のジェネリック メソッドを呼び出す方法はあるでしょうか?

↓こういう余所のライブラリのクラスの関数があるとして
public static class Utility
{
  public static void FunctionForHoge<T>()
    where T : Hoge
  {
   ...
  }

  public static void FunctionForFuga<T>()
    where T : Fuga
  {
   ...
  }
}

↓こういう感じに呼び出したい
void Func<T>(T piyo)
{
  if (piyo is Hoge) Utility.FunctionForHoge<T>(); <--制約が違うため呼び出せないのを何とかしたい
  else if (piyo is Fuga) Utility.FunctionForFuga<T>(); <--ここも
  else ...
}

どんな設計やねん!と突っ込まれるかもしれませんが、
何か面白い方法があったらぜひ教えてくださいm(_ _)m

返信 編集キー/


管理者用

- Child Tree -