Сегодня я ответил на вопрос, в основном о взаимодействии с пользовательским интерфейсом. Но позже это заставило меня задуматься о том, как ОП управлял динамически созданными элементами управления с помощью своего кода.
Пропустив .Net 2-4 и только сейчас изучив «новые» вещи, на самом деле это и привело меня к вопросу в первую очередь..:
private void AddPieceButton_Click(object sender, EventArgs e)
{
somePieceControl newPiece = new somePieceControl ();
//..
newPiece.MouseDown += (sender2, evt) => { /* 1st block of code */ };
newPiece.MouseUp += (sender2, evt) => { /* 2nd block of code */ };
newPiece.MouseMove += (sender2, evt) => { /* 3rd block of code */ }
//..
someContainer.Controls.Add(newPiece);
}
В тестовом случае вопрос едва ли имеет значение; но блоки кода могут легко стать намного больше и намного больше; также в такой игре, как Го, в конечном итоге будут сотни игровых элементов.
В то время как кто-то может / мог бы и должен подвергнуть сомнению идею добавления такого количества элементов управления, пытливые умы все еще хотят знать..: Будет ли каждая часть иметь свою собственную копию этих блоков кода, как я полагаю, или они учтены в нашем мире чудес? как обычные события и живут только один раз в оперативной памяти?