Анонимные классы
От: hardcase Пират http://nemerle.org
Дата: 01.02.10 12:39
Оценка: 20 (6)
Допилил макрос, генерирующий анонимные классы в духе C#:
def obj = new (f1 = "asdasdf", f2 = 10, f3 = array[1.0, 2.0]);

Внутренне они выглядят аналогично C#-овым, с отличиями:
1) реализуют специальный интерфейс IAnonymous, позволяющий обращаться к полям по именам через индексатор;
2) можно сравнивать на эквивалентность экземпляры анонимных классов находящихся в разных сборках;
3) если полей больше одного, то генерируется метод ToTuple(), возвращающий кортеж;
4) есть синтаксис, позволяющий собрать анонимный класс из кортежа:
def t = (a, b);
def obj = new [x, y](t);
//или
def obj = new [x, y](a, b);

Пример потолще есть тут, исходники обитают в каталоге snippets.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.