我有这样的东西
enum Animal
{
Cat,
Dog,
Cow,
Pigeon
}
和类
public class Cow
{ }
public class Dog
{ }
public class Cow
{ }
public class Pigeon
{ }
这就是我想要实现的是根据选定的枚举动态创建一个类对象。枚举和类名总是相同的。枚举和类有几十个,所以我不想为每一对添加另一个案例。
均衡
公共(public)对象 GetAnimal(Animal 动物)
像 GetAnimal(Animal.Cow);
一样使用应该返回新的 Cow 类对象。
最佳答案
public object GetAnimal(Animal animal)
{
var ns = typeof(Animal).Namespace; //or your classes namespace if different
var typeName = ns + "." + animal.ToString();
return Activator.CreateInstance(Type.GetType(typeName));
}
关于c# - 如何根据枚举的名称动态创建对象?无开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640344/