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