假设我有以下课程:
public class BaseConfig
{
}
public class SpecialConfig : BaseConfig
{
}
然后我有一个包含这些的通用类定义:
public class ConfigList<T> : ObservableCollection<T> where T : BaseConfig
{
}
然后我有另一个类,我想要一个 ConfigList 对象的集合:
public class ConfigurationManager
{
private ObservableCollection<ConfigList<BaseConfig>> _configItems
public ConfigurationManager()
{
_configItems = new ObservableCollection<ConfigList<BaseConfig>>();
}
public void AddConfigList(ConfigList<BaseConfig> configList)
{
_configItems.Add(configList);
}
}
然后在应用程序代码的其他地方我有这个:
ConfigurationManager _manager = new ConfigurationManager();
ConfigList<SpecialConfig> _configuration = new ConfigList<SpecialConfig>();
出于某种奇怪的原因,我认为 C# 由于继承而允许以下内容,但事实并非如此。我想知道的是如何完成将对象添加到泛型类的集合中,就像我在下面所做的那样(这肯定是人们遇到的常见问题,并且肯定有一个简单的模式/解决方案可以实现这一点):
_manager.AddConfigList(_configuration);