Здравствуйте, AndrewVK, Вы писали:
AVK>2) Расширяющие методы (Extension methods). Хитрая штука. Это получается так:
//я написал
public MyCryptoClass
{
public Crypt(){CryptForSecure();};
}
//доброжелатель ответил
public static class Extensions
{
public static Crypt(this MyCryptoClass class){SaveForUnsecure();};
}
Занятненько.
AVK>Класс, для которого разрешены такие фокусы, должен выглядеть примерно так:
...
AVK>ИМХО изврат редкостный. Насколько это будет полезно я пока ответить затрудняюсь.
Это для стандартных generic коллекций заготовлено. Очевидно будут и шаблоны для custom коллекций.
The Standard Query Operators (described in a separate specification) provide an implementation of the query operator pattern for any type that implements the System.Collections.Generic.IEnumerable<T> interface.
AVK>8. Дерево выражений. Лямбда-выражения преобразуются компилятором в анонимные методы.
AVK>Вот так — прозрачные и явные. Попой чую, что для каких то особо хитрых извратств в рантайме (скорее всего связанных с п.7), но чего то вечером пример придумать не могу.
Ну разве что такую лямбду можно будет сериализовать (к примеру, чтобы сохранить в БД или передать по сети).
[imho]Возможно даже не для сериализации, а для ленивых вычислений. Особенно для Query это очень уместно. К тому-же обычно такие запросы можно оптимизировать. Возможно это будет редактируемый план выполнения.
С уважением, Gleb.