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