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