gpt4 book ai didi

c# - 创建参数类型的对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:40 25 4
gpt4 key购买 nike

嘿。是否可以有一种方法,允许用户传入某种类型的参数,并让该方法实例化该类型的新对象?我想做这样的事情:(我不知道泛型是否可行,但试一试)

    public void LoadData<T>(T, string id, string value) where T : new()
{

this.Item.Add(new T() { ID=id, Val = value});

}

上面的方法不起作用,但想法是用户传递他们想要实例化的对象类型,该方法将根据这些参数填写详细信息。我可以只传递一个 Enum 参数并执行一个 Switch 并基于它创建新对象,但是有更好的方法吗?谢谢

最佳答案

做到这一点的唯一方法是添加一个接口(interface),该接口(interface)还指定您要设置的参数:

public interface ISettable
{
string ID { get; set; }
string Val { get; set; }
}

public void LoadData<T>(string id, string value) where T : ISettable, new()
{
this.Item.Add(new T { ID = id, Val = value });
}

很遗憾,我目前无法进行测试以验证。

关于c# - 创建参数类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824484/

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