Вложенные анонимные типы? - C#
Формулировка задачи:
Всем привет, имеется вот такой пример:
Как видно, в данном примере - один анонимный тип вкладывается в другой. Я понял, что это можно изобразить примерно так: см вложение
Также как я понял, когда я создаю анонимный тип, Visual Studio создает новый класс и новый класс создается когда компилятор встречает новый анонимный тип. Новизна определяется путем сравнения имен свойств, их порядка и типов.
И получается, что когда я создаю новый анонимный тип, то Visual Studio порождает (примерно) следующий класс:
Но если у меня один анонимный тип вложен в другой, то эти порожденные классы будут Nested классами ли нет?
Листинг программы
- class Program
- {
- static void Main()
- {
- var instance = new { Name = "Alex", Age = 27 };
- Console.WriteLine("Name = {0}, Age = {1}", instance.Name, instance.Age);
- Type type = instance.GetType();
- Console.WriteLine(type.ToString());
- // Delay.
- Console.ReadKey();
- }
- }
Листинг программы
- [DebuggerDisplay("{ x = {x}, y = {y} }", Type = "<Anonymous Type>")]
- public sealed class Anonymous<TX, TY>
- {
- private readonly TX field_x;
- private readonly TY field_y;
- public TX x { get { return field_x; } }
- public TY y { get { return field_y; } }
- [DebuggerHidden]
- public Anonymous(PX x, PY y)
- {
- field_x = x;
- field_y = y;
- }
- public override bool Equals(object value) { /* тут имплементация */ }
- public override int GetHashCode() { /* тут имплементация */ }
- public override string ToString() { /* тут имплементация */ }
- }
Решение задачи: «Вложенные анонимные типы?»
textual
Листинг программы
- class Program
- {
- static void Main()
- {
- // Анонимные типы в анонимных типах.
- var instance = new { Name = "Alex", Age = 27, Id = new { Number = 123 } };
- Console.WriteLine("Name = {0}, Age = {1}, Id = {2}", instance.Name, instance.Age, instance.Id.Number);
- // Delay.
- Console.ReadKey();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д