Mi función requiere que le pase una cadena y un Type como T. Basado en T, quiero analizar el valor de cadena como ese tipo, pero obtengo el error del título de esta pregunta. Cualquiera que tenga alguna idea u otras formas de lograr esta función, lo agradecería enormemente.La restricción no puede ser de clase especial 'System.Object'
T Parse<T>(string val) where T : System.Object
{
TypeCode code = Type.GetTypeCode(typeof(T));
switch (code)
{
case TypeCode.Boolean:
return System.Boolean.Parse(val);
break;
case TypeCode.Int32:
return Int32.Parse(val);
break;
case TypeCode.Double:
return Double.Parse(val);
break;
case TypeCode.String:
return (string)val;
break;
}
return null;
}
Lo que eres hacer allí es abusar de genéricos. Si va a buscar un tipo, ¿por qué usar genéricos en absoluto? – Oded
posible duplicado de [C# Generics: Restricción T donde T: Object no se compila; Error: La restricción no puede ser un 'objeto' de clase especial] (http://stackoverflow.com/questions/10644703/c-sharp-generics-constraining-t-where-t-object-doesnt-compile-error-constr) – nawfal