Type contraint problem of C#
Posted
by user351565
on Stack Overflow
See other posts from Stack Overflow
or by user351565
Published on 2010-05-27T04:05:39Z
Indexed on
2010/05/27
4:11 UTC
Read the original article
Hit count: 155
I meet a problem about type contraint of c# now.
I wrote a pair of methods that can convert object to string and convert string to object. ex.
static string ConvertToString(Type type, object val) {
if (type == typeof(string)) return (string)val;
if (type == typeof(int)) return val.ToString();
if (type.InSubclassOf(typeof(CodeObject))) return ((CodeObject)val).Code;
}
static T ConvertToObject<T>(string str) {
Type type = typeof(T);
if (type == typeof(string)) return (T)(object)val;
if (type == typeof(int)) return (T)(object)int.Parse(val);
if (type.InSubclassOf(typeof(CodeObject))) return Codes.Get<T>(val);
}
where CodeObject is a base class of Employees, Offices ..., which can fetch by static method Godes.Get where T: CodeObject
but the code above cannot be compiled because error #CS0314
the generic type T of method ConvertToObject have no any constraint but Codes.Get request T must be subclass of CodeObject
i tried use overloading to solve the problem but not ok.
is there any way to clear up the problem? like reflection?
© Stack Overflow or respective owner