正在移动另一个类中的get/set方法



是否可以将get-set方法移动到另一个类中?

我使用的是一个选项表单,它基本上直接反映了主表单中的所有更改(主要用于更改控件的颜色、字体等)

当你开始修改很多控件时,问题就开始了,因为主类中充满了get-set方法,所以我想知道是否有可能重构代码以提高类的可读性,或者更好的是,是否有可能以某种方式移动另一个类中的方法(分部类?)

这是一个只有两个控制的小例子

public Font TreeFont
{
    get { return customTreeView1.Font; }
    set { customTreeView1.Font = value; }
}
public Font TextBoxFont
{
    get { return customTextBox1.Font; }
    set { customTextBox1.Font = value; }
}
public Font MenusFont
{
    get { return menuStrip1.Font; }
    set
    {
        menuStrip1.Font = value;
        statusStrip1.Font = value;
        contextMenuStripForSnippetContent.Font = value;
        contextMenuStripTreeViewMenu.Font = value;
    }
}
public Color TreeFontForeColor
{
    get { return customTreeView1.ForeColor; }
    set { customTreeView1.ForeColor = value; }
}
public Color TextBoxFontForeColor
{
    get { return customTextBox1.ForeColor; }
    set { customTextBox1.ForeColor = value; }
}
public Color TreeFontBackgroundColor
{
    get { return customTreeView1.BackColor; }
    set { customTreeView1.BackColor = value; }
}
public Color TextBoxFontBackgroundColor
{
    get { return customTextBox1.BackColor; }
    set { customTextBox1.BackColor = value; }
}

所以,正如你所能想象的,由于有很多需要改变的地方,所以线条就会堆积起来。

此外,只返回控件并在另一个表单上进行操作是更好的做法吗?还是将获取/设置方法视为更好的做法?

提前谢谢。

如果我理解正确的话,问题不在于"类",而在于"文件"。因此,您可以简单地使用Partial Classes将类拆分为两个文件(就像Visual Studio对InitializeComponent方法所做的那样)。

确保命名空间是相同的(如果你在子文件夹中创建文件,你会得到一个嵌套的命名空间。只需更改它。)此外,确保你的类在两个文件中都以public partial class开头。并且不要在两个类中声明相同的属性。

分步说明:右键单击"解决方案资源管理器"中的项目。单击"添加"。单击"新建项目"。单击"class"。将class Class1更改为public partial class Form1 : Form。在文件顶部添加using System.Windows.Forms;。添加您的属性。

您可以使用C#区域使大型代码文件可管理,也可以使用分部类将大型代码文件拆分为多个可管理文件。

您可以使用不同类型的函数来实现Page。FindControl("controlNameHere"),并将其投射到正确的灯光中。这对ASP。NET页面,不适用于Windows窗体,但您可以在此处找到相同的解决方案从Windows窗体控件中按名称查找控件。通过这种方式,您可以提取控件名称并进行操作,而无需返回任何内容。

最新更新