Почему Visual Studio добавляет этот код к Классу. Designer.cs частичный класс. Кто-либо может сказать мне, когда эта переменная компонентов собирается получить некоторое значение? За чем шаблон должен следовать здесь?
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if(disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
Частное поле компоненты
используется для отслеживания одноразовых компонентов в вашей форме. Попробуйте перетаскивать в Timer
Компонент , и вы должны увидеть что-то вроде этого в созданном дизайнере, сгенерированный код:
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
. Шаблон, отображаемый в методе (Bool)
, обычно называется методом как Одноразовый . В основном, что шаблон гарантирует, что все отслеживаемые компоненты будут расположены, даже если вы никогда не звоните методу
метода
метода, в этом случае базовый класс вашей формы позвонит Dispose
Метод в его финаризаторе (во время сборки мусора).
Не все компоненты используют его, например, HelpProvider и EventLog. Вы можете даже комментировать это в этих случаях. Звучит, как Ms Bodge для меня.
Один общий режим операций состоит в том, что развернутое программное обеспечение живет в отдельной отрасли, которая получает только исправления. Где вы на самом деле развиваете эти исправления, в основном неактуальны; Чтобы избежать вмешательства в текущее развитие, имеет смысл разрабатывать исправление на вершине «живой» филиала, затем проверьте / комбинируйте / развернутые в живую систему, и Aftewards объединяет фиксацию обратно в багажник.
-121--2975502- Компоненты
присваиваются при добавлении не визуальных компонентов, которые также должны быть расположены в определении способа (для получения дополнительной информации, обратитесь к idisposable Pattern).
Это код, который создается шаблоном элемента формы (common7 \ ide \ itemtemplates \ csharp \ windows формы \ 1033 \ form.zip \ form.designer.cs).На самом деле в нем есть ошибка, содержащийся в нем метод InitializeComponent () без необходимости инициализирует переменную this.components. Вы можете безопасно удалить оператор из кода, если в вашей форме нет компонентов. Дизайнер автоматически вернет его обратно, если вы добавите компонент позже.
Еще одна неприятная вещь - это то, что метод Dispose () помещен в файл Designer.cs. Он действительно принадлежит файлу form.cs, поэтому вы можете добавлять вызовы Dispose () для полей в вашей форме, которые следует удалить. Не стесняйтесь перемещать код самостоятельно, изменение файла дизайнера таким образом не имеет неприятных побочных эффектов. Просто держитесь подальше от кода, заключенного в скобки с областью «сгенерированный код».
Как упоминалось в большинстве других ответов, этот код необходим для вызова метода Dispose () любых компонентов, которые вы сбросили в форму при закрытии формы. Элементы управления в форме также должны быть удалены, но это автоматически. Класс Form находит их, перебирая коллекцию Controls.