Почему это не вступило в силу?
Поскольку вы передаете копию ссылки на метод, а не фактическое место хранения самой ссылки.
Вы можете использовать ключевое слово ref
, чтобы указать, что параметр должен быть передан по ссылке:
private void ShowForm<T>(ref T form) where T : BsForm
...
ShowForm(ref qForm);
Пожалуйста, обратитесь к документам для получения дополнительной информации:
Передача ссылочного типа по ссылке позволяет вызываемому методу заменить объект, на который ссылается параметр ссылки в вызывающей стороне. Место хранения объекта передается методу в качестве значения ссылочного параметра. Если вы измените значение в месте хранения параметра (чтобы указать на новый объект), вы также измените место хранения, на которое ссылается вызывающий объект.