0

実行時に PexChoose の戻り値の型を指定する方法はありますか? たとえば、PexChoose.Value(name, Type)?

これは、実行時の制約に応じて異なる型の値を生成する一般的なモデルを作成するのに役立ちます。

4

1 に答える 1

0

リフレクションを介して汎用バージョンを呼び出す独自のヘルパー クラスを作成できます。

たとえば、非汎用バージョンのPexChoose.Value(string name)

public static class MyPexChoose
{
    public static object Value(Type myType, string name)
    {
        // Find the PexChoose.Value() method which has a single string parameter
        MethodInfo method = typeof(PexChoose).GetMethod("Value", new Type[1] {typeof(string)});
        // Make and invoke the generic version of it
        MethodInfo generic = method.MakeGenericMethod(myType);
        return generic.Invoke(typeof(PexChoose), new object[1] { name });
    }        
}

その後、コール

MyPexChoose(typeof(DateTime), "MyChosen");

と同等です

PexChoose<DateTime>("MyChosen");
于 2012-01-13T15:32:56.617 に答える