Activator.CreateInstance () создает экземпляр типа, но не влияет на ссылку - PullRequest
0 голосов
/ 24 марта 2020

У меня есть нулевой объект qForm и передача его моему методу ShowFrom . Объект qForm создается внутри метода, но когда он возвращается, я вижу, что он нулевой. Я ожидаю, что он не должен был быть нулевым, потому что он уже создан. Почему это не вступило в силу?

enter image description here enter image description here

1 Ответ

0 голосов
/ 24 марта 2020

Почему это не вступило в силу?

Поскольку вы передаете копию ссылки на метод, а не фактическое место хранения самой ссылки.

Вы можете использовать ключевое слово ref, чтобы указать, что параметр должен быть передан по ссылке:

private void ShowForm<T>(ref T form) where T : BsForm
...

ShowForm(ref qForm);

Пожалуйста, обратитесь к документам для получения дополнительной информации:

Передача ссылочного типа по ссылке позволяет вызываемому методу заменить объект, на который ссылается параметр ссылки в вызывающей стороне. Место хранения объекта передается методу в качестве значения ссылочного параметра. Если вы измените значение в месте хранения параметра (чтобы указать на новый объект), вы также измените место хранения, на которое ссылается вызывающий объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...