Объявление класса как члена самого себя

Я недавно работал в Microsoft.Ink dll, используя C #, и отлаживал проблему (которая не связана с этим). Я заметил, что при отладке у чернильных объектов был объект обводки, в котором был чернильный объект. .... и т.д.

Это смутило меня, так как я полагал, что вы не можете этого сделать (я из C ++ Background)

Но я проигнорировал это, решил проблему и пошел дальше. Сегодня я сталкиваюсь с подобной проблемой, когда смотрю на класс с закрытым членом, который был того же класса, что и он сам.

public sealed class Factory
{

    private static Factory instance = new Factory();
}

Как это вообще возможно? Теперь я могу назвать instance.instance.instance.instance ... и т. Д. Это, как вы можете себе представить, вредит моему смертному мозгу, и я уверен, что это не может быть хорошо и на компьютере. Как компилятор справляется с этим? И насколько глубоко заходит кроличья нора?

Ответы на вопрос(9)

Ваш ответ на вопрос