C#关于表单元素生成性能

C#关于表单元素生成性能,c#,performance,C#,Performance,我目前正在使用语法生成表单元素,以及启动时的所有内容。我想知道这样做是否会提高性能?我只是不喜欢在源代码中使用编辑器时那种臃肿的感觉 我的意思是,基本上如果我使用编辑器,我的项目会有这样的设置:3个面板x 44个图标图像和文本元素。 在我的代码中,我可以使用一个循环来生成所有元素,因为除了源或值之外,属性之间没有太多的差异。不,您所做的没有任何好处。事实上,在一个小的方面,你所做的是性能较差 例如,考虑在表单上有十个文本框,每一个文本框中都有“1”到“10”。表单的设计器代码如下所示: text

我目前正在使用语法生成表单元素,以及启动时的所有内容。我想知道这样做是否会提高性能?我只是不喜欢在源代码中使用编辑器时那种臃肿的感觉

我的意思是,基本上如果我使用编辑器,我的项目会有这样的设置:3个面板x 44个图标图像和文本元素。
在我的代码中,我可以使用一个循环来生成所有元素,因为除了源或值之外,属性之间没有太多的差异。

不,您所做的没有任何好处。事实上,在一个小的方面,你所做的是性能较差

例如,考虑在表单上有十个文本框,每一个文本框中都有“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);
}

for(int i=1;i你无法让mch摆脱这一困境,你失去了设计的表面,不仅是你自己,也是你现在或未来的同事


我会为重复的ui创建用户控件,然后你得到设计图面,更少的东西,以及一些封装和潜在的重用。

你的问题非常模糊。Metro?WinForms?WPF?Silverlight?ASP.Net?MonoTouch?你是在问设计器与代码性能的问题吗?因此出于所有目的,在(在简单的WinForms中)静态地说,与通过循环相比,除了头上的循环外,没有显著增加?@TonyArnold:我不确定你对最后一条评论的要求是什么(可能想重读它以确保它说的是你想要的),但实际上没有任何合法的情况来手动构建表单(而不是与设计器)以提高性能为目的,而不考虑应用程序的大小。