为什么我必须提供显式泛型参数类型而编译器应该推断出类型?
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)
或者我应该更聪明:-)
请注意,我提供了返回类型.我想不提供我在其上调用函数的对象,该方法是一个扩展方法.