为什么C#编译器不能在这里推断出类型?

时间:2016-06-09 20:58:40

标签: c# .net generics

我在这里缺少什么,编译器是否应该能够明确地推断出这里的类型?

abstract class Entity {}

class Model<TEntity> where TEntity : Entity {}

class Helper<T> {}


class Test {

    static void Method<TModel, TEntity>(Helper<TModel> param)
        where TModel : Model<TEntity>
        where TEntity : Entity
    {
    }

    class Foo : Entity {}

    public static void Main ()
    {
        Method(new Helper<Model<Foo>>());
    }
}

我收到以下错误:

  

a.cs(20,3):错误CS0411:方法的类型参数   &#39; Test.Method(助手)&#39;无法推断   用法。尝试明确指定类型参数。

指定呼叫站点的类型有效,但我不必这样做。

0 个答案:

没有答案