Почему `this` недоступно в C # 6.0 Инициализация авто-свойств?

Заголовок, который вы отправляете, - это HTTP-заголовки. Браузер принимает это как запрос страницы и обрабатывает его как страницу. И в вашем случае нужно загрузить страницу.

Таким образом, добавление заголовка переадресации к этому приводит к запутыванию всего процесса загрузки файла (поскольку заголовки собраны, сгенерированы в один заголовок и затем отправлены в браузер , вы можете попробовать это, установив несколько заголовков переадресации IIRC)

23
задан Vadim Ovchinnikov 16 May 2017 в 12:04
поделиться

1 ответ

Просто: вы не можете использовать this в инициализаторах. Идея состоит в том, чтобы предотвратить выход незавершенного объекта - Nested(this) может сделать что-нибудь с вашим объектом, что приведет к очень запутанным и трудным для понимания ошибкам. Помните, что инициализаторы выполняют перед любым конструктором, который вы добавляете. То же самое не работает и для инициализаторов полей, точно так же:

private Nested _field = new Nested(this);

По сути, инициализаторы предназначены для выполнения простых инициализаций - исправления проблемы 98%. Все, что связано с this, является более сложным, и вам нужно написать свой собственный конструктор - и взять на себя вину за любые проблемы синхронизации:)

42
ответ дан Marc Gravell 16 May 2017 в 12:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: