¿Por qué debo proporcionar tipos de parámetros explícitamente genéricos mientras que el compilador debe inferir el tipo? Uso¿Por qué debo proporcionar tipos de parámetros explícitamente genéricos mientras que el compilador debe inferir el tipo?
public static T2 Cast<T1,T2>(this T1 arg) where T2 : class where T1 : class
{
return arg as T2;
}
muestra:
objOfTypeT2 = objOfTypeT1.Cast<TypeT1,TypeT2>();
En comparación con mi uso deseado con un compilador más inteligente:
objOfTypeT2 = objOfTypeT1.Cast<TypeT2>();
o tal vez debería ser más inteligente :-)
Ten en cuenta que I prov ide el tipo de devolución. No deseo proporcionar el objeto al que he llamado la función, el método es Método de extensión.
¿Qué hay de malo en la forma en la fundición (s) normal? –
¿Por qué no simplemente hacer un T T estático público (este valor de objeto) {valor de retorno como T;}? –
Rauhotz
@Rauhotz Tuve lo que mencionaste, solo curiosidad y buscando otra sobrecarga, permíteme usarla con tipos de valores, porque no puedo sobrecargar con restricciones genéricas. –