有没有办法同时创建多个(几乎相同)的对象?

时间:2018-04-10 07:24:31

标签: c# winforms object optimization formatting

我为措辞不佳的头衔道歉,但我真的不太确定怎么说。大约一个小时前我就函数问了类似的问题,但这与对象的初始化有关,特别是在使用WinForms时。相关代码:

        // 
        // textBoxCTotal
        // 
        this.textBoxCTotal.Cursor = System.Windows.Forms.Cursors.Default;
        resources.ApplyResources(this.textBoxCTotal, "textBoxCTotal");
        this.textBoxCTotal.Name = "textBoxCTotal";
        this.textBoxCTotal.TabStop = false;

        // 
        // textBoxBTotal
        // 
        this.textBoxBTotal.Cursor = System.Windows.Forms.Cursors.Default;
        resources.ApplyResources(this.textBoxBTotal, "textBoxBTotal");
        this.textBoxBTotal.Name = "textBoxBTotal";
        this.textBoxBTotal.TabStop = false;

        // 
        // textBoxRTotal
        // 
        this.textBoxRTotal.Cursor = System.Windows.Forms.Cursors.Default;
        resources.ApplyResources(this.textBoxRTotal, "textBoxRTotal");
        this.textBoxRTotal.Name = "textBoxRTotal";
        this.textBoxRTotal.TabStop = false;

是否可以一次初始化这3个对象(如果这是正确的名称),将代码减少近66%?我觉得必须有一个更紧凑的方式。

我很乐意澄清任何措辞,因为我相信我可能不会尽可能清楚。

谢谢。

1 个答案:

答案 0 :(得分:2)

当然有:这称为“重构”:

angular.element(document.querySelector('[ng-controller="HeaderCtrl"]')).scope().myFunc()

你可以像这样使用它:

 private void InitializeTextBox(TextBox textBox, string name) {
      textBox.Cursor = System.Windows.Forms.Cursors.Default;
      resources.ApplyResources(textBox, name);
      textBox.Name = name;
      textBox.TabStop = false;
 }

但请注意,这是使用Windows窗体设计器自动生成的代码。如果您编辑该代码,则无法始终通过编辑器进行更多更改。因此,在这种情况下,与这种复制一起生活是可以的。