Здравствуйте, O-Sam, Вы писали:
OS>Можно ли как-то сделать динамическое задание количества и типов атрибутов класса? OS>Чтобы можно было писать что-то
OS>
OS>MyHeap h = new MyHeap();
OS>FillHeap(h); // создание атрибута s типа string
OS>MessageBox.Show(h.s);
OS>
Опишите для чего Вам это необходимо? Звучит как минимум странно...
Re[2]: Динамическое задание количества и типов атрибутов кла
Здравствуйте, pt4h, Вы писали:
P>Здравствуйте, O-Sam, Вы писали:
OS>>Можно ли как-то сделать динамическое задание количества и типов атрибутов класса? OS>>Чтобы можно было писать что-то
OS>>
OS>>MyHeap h = new MyHeap();
OS>>FillHeap(h); // создание атрибута s типа string
OS>>MessageBox.Show(h.s);
OS>>
P>Опишите для чего Вам это необходимо? Звучит как минимум странно...
Скажем так, есть у меня набор объектов, их все хочется объединить в общую структуру. Не хочется иметь числовые индексы, хочется текстовые.
Хочется обойтись без приведения типов. То есть сделать так, чтобы если у меня объект с индексом "idx" имеет тип int, то нормально выполнялось бы что-то типа int a = h.idx или int a = h["idx"].
Re[3]: Динамическое задание количества и типов атрибутов кла
Ну можно поддерживать список аттрибутов класса обернутыхn в некоторую иерархию FieldType
BooleanFieldType, DoubleFieldType и т.д.
они могут хавать объекты и строки и пытаются их преобразовывать в тип который понимают.
Чтобы извлечь данные нужного типа без приведения типа придется использовать двойную диспетчеризацию (поищи по шаблону Visitor).
Довольно трудоемкое решение вобщем.
Другой вариант — если схемы данных в системе меняются вместе с алгоритмами их обработки, то по схемам можно генерировать классы на C#
Ну и последний вариант — уже упомянутый — язык без строгой типизации. Самый наверное красивый
Re[3]: Динамическое задание количества и типов атрибутов кла
Здравствуйте, O-Sam, Вы писали:
OS>Хочется обойтись без приведения типов. То есть сделать так, чтобы если у меня объект с индексом "idx" имеет тип int, то нормально выполнялось бы
что-то типа int a = h.idx или int a = h["idx"].
Dictionary<string, int>
Re: Динамическое задание количества и типов атрибутов класса
Здравствуйте, O-Sam, Вы писали:
OS>Можно ли как-то сделать динамическое задание количества и типов атрибутов класса? OS>Чтобы можно было писать что-то
OS>
OS>MyHeap h = new MyHeap();
OS>FillHeap(h); // создание атрибута s типа string
OS>MessageBox.Show(h.s);
OS>
Если я Вас верно понял, тогда то, что Вы имеете в виду в C# называется не "атрибут", а "свойство".
Атрибуты — это нечто другое, например [Serializable] перед определением класса.
Re: Динамическое задание количества и типов атрибутов класса
Здравствуйте, O-Sam, Вы писали:
OS>Можно ли как-то сделать динамическое задание количества и типов атрибутов класса? OS>Чтобы можно было писать что-то
OS>
OS>MyHeap h = new MyHeap();
OS>FillHeap(h); // создание атрибута s типа string
OS>MessageBox.Show(h.s);
OS>
Если ты знаешь тип атрибута, почему бы не воспользоваться Hashtable?
Hashtable ht = new Hashtable();
ht["id"] = 15;
MessageBox.Show(ht["id"].ToString());