对通用接口的抽象引用

时间:2011-03-18 19:36:28

标签: c# generics

如果运行时允许引用通用接口的成员并非特定于泛型类型,那么是否有人认为它可能有用?我知道通常的“解决方法”是创建一个非泛型接口作为通用接口的基础,但有一个有效的理由反对该基本接口基本上是自动的吗?

例如,给定以下界面:

public interface IProcessor<T> 
{
    string Name { get; }
    void Process(T item);
}

我认为自动允许这样的事情会很方便:

public void LogProcessor(IProcessor<> item)
{
        Trace.WriteLine(item.Name);
}

我很想听到反对的论点(除了“停止这么懒,只是写基础接口”)。

2 个答案:

答案 0 :(得分:7)

您可以使用通用方法:

public void LogProcessor<T>(IProcessor<T> item)
{
    Trace.WriteLine(item.Name);
}

答案 1 :(得分:0)

不是共同语言规范的主要原因。添加这些东西是微软框架开发人员工作和测试的重要部分。所以更容易添加基础接口。 但无论如何,你可以将你的想法发布到微软论坛