Получить доступ до членов анонимного типа - C#
Формулировка задачи:
путаюсь в анонимных типах.
наверняка проблема в том, что Func<object> fa2 возвращает тип object, и его нужно к чему-то привести, чтобы компилятор разобрался что к чему.
хотя если строчку с ошибкой закомментировать, программа выдает вполне вразумительный результат:
значит, возможность добраться до членов типа есть. но какая?
var a1 = new { A = 123, B = "text string" };
Console.WriteLine("a1 = {0}", a1);
// здесь все понятно
Console.WriteLine("a1.A = {0}", a1.A);
Console.WriteLine("a1.B = {0}", a1.B);
Func<object> fa2 = () => { return new { A = 234, B = "new string" }; };
var a2 = fa2();
Console.WriteLine("a2 = {0}", a2);
// а здесь при попытке обращения к члену анонимного типа получаю ошибку
Console.WriteLine("a2 = {0}", a2.A); // error CS1061: 'object' does not contain a definition for 'A'
// and no extension method 'A' accepting a first argument
// of type 'object' could be found (are you missing
// a using directive or an assembly reference?)a1 = { A = 123, B = text string }
a1.A = 123
a1.B = text string
a2 = { A = 234, B = new string }Решение задачи: «Получить доступ до членов анонимного типа»
textual
Листинг программы
Func<T> Create<T>(Func<T> f)
{
return f;
}