找到将属性应用于代码的最佳方法

时间:2011-10-18 14:30:05

标签: c# winforms

抱歉混淆了标题。 我正在为Spreads使用第三方控件,它有一个comboBoxCellType()。 在我的代码中有20个地方,我有这样的代码:

ComboBoxCellType cbo = new ComboBoxCellType()
cbo.OtherStuff...

现在我希望这些代码的所有出现都有一个名为listwidth = 0的额外属性;所以 类似的东西:

ComboBoxCellType cbo = new ComboBoxCellType()
cbo.listwidth=0;
cbo.OtherStuff

一种方法是搜索代码并手动添加。但我想知道有没有更好的方法使用继承和重写来做到这一点?

3 个答案:

答案 0 :(得分:1)

ComboBoxCellType的创建和初始化封装到方法中,并从之前执行此操作的每个位置调用该方法。

通常,如果您发现自己重复代码,请查看是否可以将代码提取到可以调用的方法中。保留您的代码DRY

类似的东西:

private ComboBoxCellType BuildComboBoxCellType()
{
  ComboBoxCellType cbo = new ComboBoxCellType()
  cbo.listwidth=0;
  cbo.OtherStuff...

  return cbo;
}

在原始代码中:

ComboBoxCellType cbo = BuildComboBoxCellType();

答案 1 :(得分:1)

您可以创建一个可用于新建ComboBoxCellType的静态类。

这样的事情:

public static class ComboBoxCellTypeFactory
{
     public static ComboBoxCellType Create()
     {
         return new ComboBoxCellType(){listwidth = 0};
     }
}

有了这个,你就可以将listwidth属性设置为0来新建ComboBoxCellType实例,如下所示:

ComboBoxCellType cbo = ComboBoxCellTypeFactory.Create();
cbo.OtherStuff...

答案 2 :(得分:0)

如果您有权访问源代码,我建议您在ComboBoxCellType的构造函数中放置this.listwidth = 0.