2
我尝试使用下面的代码来实现泛型类:字典中的泛型类
interface IBasicInput<T> where T : InputOutputConfig
{
void Configure<T>(ConfigurationDictionary<T> conf) where T : InputOutputConfig;
}
public class ConfigurationDictionary<T> : Dictionary<string,T> where T : InputOutputConfig
{
}
public abstract class InputOutputConfig
{
}
public class SpecificInputConfig : InputOutputConfig
{
}
public class GenericInput<T> : IBasicInput<T> where T : InputOutputConfig
{
ConfigurationDictionary<T> configuration;
public GenericInput()
{
configuration = null;
}
public void Configure<T>(ConfigurationDictionary<T> _conf) where T : InputOutputConfig
{
configuration = new ConfigurationDictionary<T>();
foreach (KeyValuePair<string,T> kvp in _conf)
{
}
}
}
的isssue是configuration = new ConfigurationDictionary<T>();
产生错误。
错误CS0029无法隐式转换类型 'ConfigurationDictionary [GenericsTest,版本= 1.0.0.0,文化=中立,公钥=空]' 到“ConfigurationDictionary [GenericsTest,版本= 1.0.0.0,文化=中立,公钥= null]'
这条消息对我没有意义,因为它基本上说它不能将“typeA”转换为“typeA”。有人能解释这段代码有什么问题吗?
你的问题,是因为你有两个通用的类型参数称为' T'在你的'Configure'方法的范围内 – jamespconnor