Re[7]: [Ann, c#7] local functions
От: Sinix  
Дата: 21.05.15 13:35
Оценка:
Здравствуйте, hardcase, Вы писали:

S>>Скорее всего с рослином проще дать генерик-функции, чем объяснять, почему нет.


H>Под капотом поддержку генериков делать придется хотя бы потому, что такие параметры наследуются от метода, в который вложена локальная функция.

Там не так всё будет.
Для самого замыкания всё уже сделано.

А вот local generic-функция просто переедет в класс замыкания,
void A<T>(T x)
{
  T2 DoSmth<T2>() { return SomeCode<T2>(x)};

  DoSmth<int>();
}

// =>
class Closure<T>
{
   public T _x
   public T2 DoSmth<T2>() { return SomeCode<T2>(_x)};
}
// ...
void A<T>(T x)
{
  var xyz = new Closure<T> { _x = x };
  xyz.DoSmth<int>();
}


И вот объяснить, почему при переезде "генерики низзя" будет куда сложнее, чем собственно перенести.
Это ж надо задокументировать в стандарте, добавить диагностики/ошибки компилятора, добавить quick fix в студию, покрыть всё это дело тестами, написать на всё перечисленное документацию, пару статей и несколько глав в книжке по MS cert exam и тд и тп.

Лучше чем-то полезным заняться
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.