La mia funzione richiede che tu passi una stringa e un Tipo come T. Basato su T voglio analizzare la stringa val come quel tipo, ma ottengo l'errore dal titolo di questa domanda. Chiunque abbia qualche intuizione o altri modi per realizzare questa funzione, lo apprezzerei molto.Il vincolo non può essere una classe speciale '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;
}
Cosa sei fare ci sono generici abusanti. Se stai cercando un tipo, perché usare i generici? – Oded
possibile duplicato di [C# Generics: Vincolare T dove T: Object non si compila; Errore: il vincolo non può essere 'oggetto' classe speciale] (http://stackoverflow.com/questions/10644703/c-sharp-generics-constraining-t-where-t-object-doesnt-compile-error-constr) – nawfal