tengo una interfaz para una propiedad de mapa chirriante:casting valor de T en un método genérico
interface IPropertyMap
{
bool Exists(string key);
int GetInt(string key);
string GetString(string key);
//etc..
}
que quieren crear un método de extensión de este modo:
public static T GetOrDefault<T>(this IPropertyMap map, string key, T defaultValue)
{
if (!map.Exists(key))
return defaultValue;
else
{
if (typeof(T) == typeof(int)) return (T)map.GetInt(key);
//etc..
}
}
Pero el won compilador No me dejes enviar a T. Intenté agregar where T : struct
, pero eso no parece ayudar.
¿Qué me estoy perdiendo?
Supongo que es un error tipográfico, pero todos los métodos en su interfaz devuelven bool ...? –
Sí, copiar y pegar es mi amigo peligroso ... – Benjol