【发布时间】:2014-01-21 07:59:13
【问题描述】:
假设我将有一个名为 getCountry 的通用类型方法:
public T GetCountry<T>(int portalID)
{
T theCountry = (T)Activator.CreateInstance(typeof(T));
theCountry.id = "AR";
if(portalID == 1) theCountry.id = "ARG";
return theCountry;
}
当然这样不行,因为编译器不知道T里面有一个叫“id”的字段。
我不能做替代解决方案,比如放置 where T extends AbstractCountry 或其他什么,因为这些国家/地区类是顶级类,我无权访问代码来为它们创建父级。代码不是我的(不幸的是设计得很糟糕)。这意味着我也无法为不同的国家/地区类型创建构造函数并使用 Activator 类将 id 作为参数发送,而我个人对泛型的了解就到此为止了。
有什么方法可以实现我想要做的事情吗?谢谢大家!!!
【问题讨论】: