0
public class Manager<T> where T: IBallGame
{
T GetManager()
{
//if T is ISoccer return new Soccer()
//if T is IFootball return new Football()

//This wont work. Why?
if (typeof(T) == typeof(ISoccer))
                return new Soccer();
}
}

Interface ISoccer: IBallgame
{
}
class Soccer: ISoccer
{
}
Interface IFootball: IBallgame
{
}
class Football:IFootball
{
}

私はすでにこの質問をチェックアウトしましたメソッドの戻り値の型をジェネリックにするにはどうすればよいですか? . Convert.ChangeType() よりエレガントなものはありますか?

タイプに制約がある場合、Soccer または Football のインスタンスを返すことができないのはなぜですか?

4

2 に答える 2