Пример, когда не хватает анонимных классов
С анонимными делегатами можно, но кривоnew DropDownListBinder<Product>(..., x => new DropDownItemBinder(x.Name, x.Id
?
new DropDownListBinder<Product>(..., x => new DropDownItemBinder(x.Name, x.Idне то. Для каждого свойства должна быть своя функция, и у функции должно быть имя.
new DropDownItemBinder(x.Name, x.Idу тебя создается хранилище, а это лишнее, которое потом возможно будет мешать. Тредования такие: нужны две (в общем случае несколько) функции, объединенные некоторой конструкцией.
IEnumerable<Product> products = //получаем из базы список продуктов
new DropDownListBinder<Product>(dropDownList1,
new DropDownItemBinder<Product>(data => data.Name, data => data.Id)
.SetData(products);
IEnumerable<Product> products = //получаем из базы список продуктовда, это самый прямой вариант, но тут у методов нет имени, т.е. по клду не видно, что Name дайндится к тексту.
new DropDownListBinder<Product>(dropDownList1,
new DropDownItemBinder<Product>(data => data.Name, data => data.Id)
.SetData(products);
У меня еще есть вот такой вариант
new DropDownListBinder<Product>(dropDownList1).Text(data => data.Name).Value(data => data.Id)..SetData(products).
Правда тут есть минус — можно забыть один из методов, а в анонимном классе они абстрактные. Спасибо , в синтаксисе 3.0 это симпатичнее смотрится, но мы пока на 2.0, а там тип параметра делегата надо явно указывать, Решарпер конечно генерит его, но громоздко смотрится.
Так же нельзя вызывать базовый метод base.Metthod1
но тут у методов нет именинаверное, инициализаторы эту проблему решают...
В C# 3.0 вроде есть анонимные классы.
В C# 3.0 вроде есть анонимные классы.это просто совпадение термина
Если первое, напиши подробнее, плз, что есть и что надо получить.
методы, наследования, реализацию интерфейсов в такой анонимный класс добавить нельзя.
и соответственно задачу из данного треда они не решают
у тебя создается хранилище, а это лишнее, которое потом возможно будет мешать.Может оно конечно и лишнее, но за удобство приходится платить, а каждый раз рисовать такого анонимного крокодила, имхо это жесть.
Оставить комментарий
6yrop
тут была тем о том, что в C# не хватает анонимных классов, было высказано мнение, что они заменяются анонимными делегатам. Приведу простой пример. Надо прибайндить к выпадающем списку коллекцию объектов, хочется это сделать типизировано. Вот как это выглядит с анонимным классомС анонимными делегатами можно, но криво