@romaro

Имеет ли смысл использовать здесь using для освобождения ресурсов?

Есть метод, который создает инстанс формы через рефлексию:
public static DataRecordForm GetForm(IDataRecordContext ctx, string postfix = "")
        {
            var formName = "Gui.Configurator.Forms." + ctx.DataDomainName + postfix + "Form";
            var formType = Type.GetType(formName);

            if (formType == null)
            {
                throw new ArgumentException($"Not found form type with name {formName}. Did you forgot path?");
            }

            if (Activator.CreateInstance(formType, ctx, ApiProvider) is not DataRecordForm form)
            {
                throw new Exception($"Form {formName} is not an instance of DataRecordForm");
            }

            return form;
        }


Этот метод вызывается в других методах приложения, которым нужен инстанс формы, например:
public static void ShowDataRecordForm(IDataRecordContext ctx, string postfix = "")
        {
            using var form = GetForm(ctx, postfix);
            form.Owner = MainFormStatic;
            form.StartPosition = FormStartPosition.CenterScreen;
            form.Show();
        }


Произойдет ли освобождение ресурсов после закрытия такой формы?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
У тебя в таком коде форма будет уничтожена сразу после выхода из метода ShowDataRecordForm.
Ты даже не успеешь форму закрыть
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы