А>у меня в стринге храниться название типа к примеру typeName = "System.Int32",и два значения тоже в стрингах a = "1" и b ="2" мне надо их проверить на больше/меньше.. =)
А>КАК это сделать по-нормальному? =)))
не знаю, насколько нормален такой вариант, но он работает:
class Class1
{
static void Main(string[] args)
{
Class1 c = new Class1();
object o42 = c.GetObject("System.Int32", "42");
object o55 = c.GetObject("System.Int32", "55");
int i42 = (int)o42;
if(o42.GetType() == o55.GetType() && o42 is IComparable && o55 is IComparable)
{
Console.WriteLine((o42 as IComparable).CompareTo(o55 as IComparable));
}
else
{
Console.WriteLine("объекты не сравнимы");
}
Console.ReadLine();
}
private object GetObject(string typeName, string value)
{
Type type = Type.GetType(typeName);
MethodInfo mi = type.GetMethod("Parse", new Type[]{typeof(string)});
if(mi == null || !mi.IsStatic)
return null;
object result = Activator.CreateInstance(Type.GetType(typeName));
result = mi.Invoke(result, new object[]{value});
return result;
}
}