я играл с VS 2017 RC и новыми функциями C#:Локальных функции с анонимными типами в их области
class Program
{
class A
{
public int Z1 { get; set; }
public int Z2 { get; set; }
}
static void Main(string[] args)
{
var q = new[] { new A() }.Select(x => new { x.Z2 });
Do(q.First());
int Do<T>(T p)
{
Console.WriteLine(p.GetType().Name);
return 0;
}
}
}
Код выше компилируется и выводят
"<>f__AnonymousType0`1"
Однако , следующие:
Console.WriteLine(p.Z2);
производства
CS1061 Ошибка «T» не содержит определение для «Z2», а метод расширения «Z2» принимающую первый аргумент типа «Т» может быть найдено (вы пропали без вести с помощью директивы или ссылка на сборку?)
Это еще что-то не завершено? Сможем ли мы получить доступ к свойствам анонимных типов внутри локальных функций после выпуска?
Можете ли вы добавить источник ссылки, который заставляет задуматься над этим? Еще не видел этого. – Slai
Это будет вести себя одинаково с нелокальной функцией. – Servy