gpt4 book ai didi

c# - 如何将枚举传递给父类的静态函数以实例化子类第 II 部分?

转载 作者:行者123 更新时间:2023-12-02 22:12:39 25 4
gpt4 key购买 nike

这是对之前 question 的跟进.这个问题有一个错误(我实际上发布了我当前的解决方案,而不是我正在寻找的更好的解决方案)。

我有 3 个类,ParentClassClassAClassBClassAClassB 都是ParentClass 的子类。我想尝试创建类型为 ClassAClassB 的对象,使用某种枚举来标识类型,然后将对象实例化为父类型。我怎样才能动态地做到这一点?请查看下面的代码,以及 //what do I put here? 部分。感谢阅读!

公共(public)枚举类类型 { A级, B类 };

public abstract class ParentClass
{
public static readonly Dictionary<ClassType, Type> Types =
new Dictionary<ClassType, Type>{
{ClassType.ClassA, typeof(ClassA) },
{ClassType.ClassB, typeof(ClassB) }
};

public ParentClass()
{
//....
}

public static ParentClass GetNewObjectOfType(ClassType type)
{
//What do I put here?
}
}

public class ClassA:ParentClass
{
//....
}
public class ClassB:ParentClass
{
//.......
}

最佳答案

您可以使用 Activator 类轻松完成此操作,尤其是在构造函数没有任何参数的情况下:

return Activator.CreateInstance(Types[type]);

关于c# - 如何将枚举传递给父类的静态函数以实例化子类第 II 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com