第一个例子有效,
public interface IFoo
{
int DoThing(int request);
}
public class Foo : IFoo
{
public int DoThing(int a)
{
return 1;
}
}
public class FooFactory<TResult, TRequest>
{
public IFoo Create()
{
return new Foo();
}
}
但是这第二个泛型示例不起作用
public interface IFoo<TResult, TRequest>
{
TResult DoThing(TRequest request);
}
public class Foo : IFoo<int, int>
{
public int DoThing(int a)
{
return 1;
}
}
public class FooFactory<TResult, TRequest>
{
public IFoo<TResult, TRequest> Create()
{
return new Foo();
}
}
给出错误:
Cannot implicitly convert type Foo to IFoo<TResult, TRequest>
在第一个示例中,Foo 具有 IFoo 的行为,所以一切都很好,但是 Foo 在第二个示例中是否也表现出通用 IFoo 的行为?