Нет, нет никакого преимущества в том, что вы делаете.Фактически, маленьким способом, вы делаете меньше производительности.
Например, представьте, что в вашей форме есть десять текстовых полей, каждое из которых содержит текст от «1» до «10».Код конструктора вашей формы будет выглядеть примерно так:
textBox1 = new TextBox();
textBox1.Text = "1";
Controls.Add(textBox1);
textBox2 = new TextBox();
textBox2.Text = "2";
Controls.Add(textBox2);
textBox3 = new TextBox();
textBox3.Text = "3";
Controls.Add(textBox3);
textBox4 = new TextBox();
textBox4.Text = "4";
Controls.Add(textBox4);
textBox5 = new TextBox();
textBox5.Text = "5";
Controls.Add(textBox5);
textBox6 = new TextBox();
textBox6.Text = "6";
Controls.Add(textBox6);
textBox7 = new TextBox();
textBox7.Text = "7";
Controls.Add(textBox7);
textBox8 = new TextBox();
textBox8.Text = "8";
Controls.Add(textBox8);
textBox9 = new TextBox();
textBox9.Text = "9";
Controls.Add(textBox9);
textBox10 = new TextBox();
textBox10.Text = "10";
Controls.Add(textBox10);
(На самом деле, он будет разбит, поскольку создание экземпляров, инициализация и добавление обычно находятся в разных местах, но это хорошо для иллюстрации).
Теперь, конечно, это многословно.Но чистое многословие в сгенерированном коде, как правило, не имеет значения, поскольку никто не пишет (или, в идеале, читает ) его.Если, конечно, это не снижает производительность, но я к этому подхожу.
Используя ваш подход, вы (правильно) использовали бы цикл, так как этот код довольно повторяющийся и просто умоляет посмотреть немного большекратким.Что-то вроде ...
for(int i = 1; i <= 10; i++)
{
TextBox box = new TextBox();
box.Text = i.ToString();
Controls.Add(box);
}
Конечно, гораздо более читабельно.Но, однако, давайте посмотрим на работу, которую среда выполнения фактически должна выполнять для каждого текстового поля в каждом подходе.
Во-первых, она делает это:
- Создание нового экземпляра
TextBox
- Установите для свойства
Text
строковый литерал - Добавьте в коллекцию
Controls
Во втором случае это необходимо сделать:
- Увеличение целочисленной переменной
- Сравнение с состоянием терминала
- Создание
TextBox
- Преобразование целого числа в строку
- Присвойте эту промежуточную строку свойству
Text
- Добавьте в коллекцию
Controls
Теперь, является ли дополнительная работа существенной?Нет. Вы когда-нибудь заметите столь незначительный удар по производительности, который вы получите от дополнительной работы?Если вы делаете, вам нужен новый компьютер.Но ваш вопрос состоял в том, была ли ваша работа более эффективной, и ответ был «нет».