相关疑难解决方法(0)

为什么我必须提供显式泛型参数类型而编译器应该推断出类型?

为什么我必须提供显式泛型参数类型而编译器应该推断出类型?

public static T2 Cast<T1,T2>(this T1 arg) where T2 : class where T1 : class
{
    return arg as T2;
}
Run Code Online (Sandbox Code Playgroud)

样品用法:

 objOfTypeT2 = objOfTypeT1.Cast<TypeT1,TypeT2>();
Run Code Online (Sandbox Code Playgroud)


与我对更智能的编译器的期望用法相比:

 objOfTypeT2 = objOfTypeT1.Cast<TypeT2>();
Run Code Online (Sandbox Code Playgroud)

或者我应该更聪明:-)

请注意,我提供了返回类型.我想不提供我在其上调用函数的对象,该方法是一个扩展方法.

.net c# generics type-inference

13
推荐指数
2
解决办法
1350
查看次数

标签 统计

.net ×1

c# ×1

generics ×1

type-inference ×1