Re: типы в .net
От: Аноним  
Дата: 17.04.04 08:00
Оценка:
А>у меня в стринге храниться название типа к примеру 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;
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.