类型参数不能从用法中推断出来,但似乎很明显

时间:2019-05-01 21:56:19

标签: c#

为什么在我打电话给DoSomething的情况下,类型推论不起作用?

    public class A { }
    public class B<T> { }
    public static class Extensions
    {
        public static void DoSomething<TWrapper, TInner>(this TWrapper thing)
        where TWrapper : B<TInner>
        {

        }

        public static void Test()
        {
            new B<A>().DoSomething();
        }
    }

在我看来,在Test方法中,TWrapper必须是B<A>,因此TInner必须是A。为什么编译器无法解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您尝试为Face Collection编写扩展名,那么它就是:

B<T>