Почему я должен предоставлять явно общие типы параметров, в то время как компилятор должен выводить тип?
public static T2 Cast<T1,T2>(this T1 arg) where T2 : class where T1 : class
{
return arg as T2;
}
Пример использования:
objOfTypeT2 = objOfTypeT1.Cast<TypeT1,TypeT2>();
По сравнению с моим желаемым использованием с более интеллектуальным компилятором:
objOfTypeT2 = objOfTypeT1.Cast<TypeT2>();
или, может быть, я должен быть умнее: -)
Остерегайтесь, что Я предоставляю тип возврата . Я не хочу предоставлять объект, который я вызвал функцию, это метод Расширение .