Получить доступ до членов анонимного типа - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д