Мне нужно создать класс, который может содержать произвольное количество типов, хотя во время разработки я не знаю тип и количество этих значений. Например, я мог бы инициализировать класс с 2 ints и длинным или всего одним значением int. Я также хотел бы избежать бокса, насколько это возможно (используя тип «объект»). Каждый тип также будет иметь имя, поэтому внутренний словарь, содержащий значения, может выглядеть следующим образомКонструкция класса для неизвестного числа параметров типа
Dictionary<string,object> nameValues;//Boxing!
и конструктор может выглядеть
MyClass(params object[] values) { ... }
Я мог бы построить экземпляр, как это
MyClass mc = new MyClass("intVal",3,"doubleVal",3.5,"dateTimeVal",DateTime.Now);
Любые предложения по более эффективному дизайну, которые могли бы избежать бокса, насколько это возможно.
Редактировать: Должно быть возможно также указать значение «string» в качестве параметра. Первоначально я упоминал только типы значений, но это уже не так!
Я не понимаю, как вы можете сделать это без используя бокс. С другой стороны, если вы сообщите нам, что вы хотите сделать, кто-то может придумать лучшее решение. – decyclone 2010-12-06 10:07:57
есть ли какой-либо предел для параметров типа значения, т. Е. 2,3,4,5 – TalentTuner 2010-12-06 10:15:36
@decyclone На самом деле я действительно хочу достичь того, что я сказал, - создать эффективный контейнер для произвольного количества типов значений, где каждый тип значения имеет ассоциированное имя , – alwayslearning 2010-12-06 10:17:44