gpt4 book ai didi

c# - 使用枚举来选择要实例化的类

转载 作者:太空狗 更新时间:2023-10-29 20:05:13 26 4
gpt4 key购买 nike

我有一个枚举,我试图将其关联到 dto:

 public enum DtoSelection
{
dto1,
dto2,
dto3,
}

此枚举中有 108 个和值。

对于这些 dto 中的每一个,我都有一个 dto 对象:

 public class dto1 : AbstractDto
{
public int Id { get; set; }
//some stuff specific to this dto
}

我正在尝试制作一个方法(最终是一个服务),它将返回一个新的 dto 对象,该对象的类型与所讨论的 dto 相关联:

 private AbstractDto(int id)
{
if (id == DtoSelection.Dto1.ToInt()) //extension method I wrote for enums
return new Dto1();
if (id == DtoSelection.Dto2.ToInt())
return new Dto2();
}

显然我不想这样做 108 次。不管出于什么原因,我的大脑只是缺少一些明显的东西。处理此问题的最佳方法是什么。

最佳答案

使用Activator.CreateInstance方法并将枚举的 ToString 值传递给它。

Type type = Type.GetType(DtoSelection.dto1.ToString());
var temp = Activator.CreateInstance(type);

关于c# - 使用枚举来选择要实例化的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835839/

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