我有一個類需要一個通用類型作爲其初始化的一部分。從一個C#類型變量初始化一個通用變量
public class AnimalContext<T>
{
public DoAnimalStuff()
{
//AnimalType Specific Code
}
}
我現在就可以做的是
AnimalContext<Donkey> donkeyContext = new AnimalContext<Donkey>();
AnimalContext<Orca> orcaContext = new AnimalContext<Orca>();
但我需要/想要做的就是能夠申報初始化爲僅在運行時已知的類型的AnimalContext。例如,
Animal a = MyFavoriteAnimal(); //returns an instance of a class
//implementing an animal
AnimalContext<a.GetType()> a_Context = new AnimalContext<a.GetType()>();
a_Context.DoAnimalStuff();
這甚至可能嗎?我似乎無法找到這個在線的答案。
回答的每個人都給出了比以前的答案提供了更多信息的答案。所有這些都是正確的,並且質量很好,但只有一個可以被選爲答案,所以我選擇了這個最具描述性的一個。我想感謝所有回答的人,並且我感謝所有的幫助(特別是在星期天晚上的晚些時候)。 –
如果我的類不是泛型的,但是裏面的方法是什麼,我將如何使用MakeGenericType –