请考虑以下事项:
public interface ICleanCoder
{
void DoSomeCoding(object task);
}
public interface ICleanCoder<T>
{
void DoSomeCoding(T task);
}
...
public class TestCleanCoding
{
void RegisterCleanCoder(ICleanCoder coder);
}
我必须拥有初始非通用接口,以便稍后启用非泛型引用。我知道从技术上说这很有道理,但解决方案对我来说有点腐烂,我想知道我是否遗漏了什么。
答案 0 :(得分:2)
不幸的是,这是唯一的方法,除非你想让TestCleanCoding成为一个模板(这是一个合理的设计决定,不会丢弃ICleanCoder作为模板的好处);另外,你遗漏了一个重要的部分:
public interface ICleanCoder<T> : ICleanCoder
{
void DoSomeCoding(T task);
}
否则,模板化界面与基本界面无关。