Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2016, 21:18   #1
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
Лампочка Вложенные анонимные типы?

Всем привет, имеется вот такой пример:
Код:
 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();
        }
    }
Как видно, в данном примере - один анонимный тип вкладывается в другой. Я понял, что это можно изобразить примерно так:
См приложение...
Также как я понял, когда я создаю анонимный тип, Visual Studio создает новый класс и новый класс создается когда компилятор встречает новый анонимный тип. Новизна определяется путем сравнения имен свойств, их порядка и типов.
И получается, что когда я создаю новый анонимный тип, то Visual Studio порождает (примерно) следующий класс:
Код:
[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() { /* тут имплементация */ }
}
Но если у меня один анонимный тип вложен в другой, то эти порожденные классы будут Nested классами ли нет?
Изображения
Тип файла: jpg Безымянный.jpg (45.7 Кб, 122 просмотров)

Последний раз редактировалось BadCats; 23.12.2016 в 22:00.
BadCats вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анонимные типы в c# и их особенности? BadCats C# (си шарп) 0 10.12.2016 16:30
Анонимные функции Sentim JavaScript, Ajax 6 21.05.2015 12:07
Анонимные методы Joose C# (си шарп) 3 27.02.2015 18:59
Анонимные каналы RAZOR1703 Win Api 1 29.11.2011 21:47
Twebbrowser и анонимные proxy vasiliy_09_05 Работа с сетью в Delphi 1 24.02.2011 17:11