表单实现相同的方法

时间:2013-03-08 06:00:06

标签: c# winforms class methods

我有两个表单A和表单B,我将用它们将信息输入到XML文件中。现在,这两个表单将不得不调用一些基本相同的方法(同名,相同的实现)。

我不能在此上下文中使用基类,因为表单A和表单B已经从 System.Windows.Forms.Form 继承。我应该只使用这两个表单将实现的接口吗?我怀疑这是最好的方法,因为他们需要的方法是相同的。

你能建议一个更好的方法吗?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以创建一个存储项目中常用功能的类。您可以用任何形式调用这些函数。

namespace ProjectNameSpace
{
    public class GenericFunctions
    {
        public static void WriteToXML()
        {
         // come code here
        }
    }
}

答案 1 :(得分:1)

对于代码重用和遵循所谓的“干”原则,你需要做“提取类”重新分解以避免代码重复。

如果上面的句子在外行术语中看起来如此通用,那么创建一个实用程序类,如果您不希望以不同的形式使用不同的实现并将代码移动到实用程序静态类,那么它是完美的候选者。

public static  class Utility
{
    public static void WriteToXML()
    {
        // come code here
    }
}

答案 2 :(得分:0)

绝对可以引入表格A和表格B继承自的基本表格:

public partial class BaseForm : System.Windows.Forms.Form
    {
        public BaseForm()
        {
            InitializeComponent();
        }

        public void  CommonMethod()
        {

        }
    }


public partial class FormA : BaseForm
{
    public Form1()
    {
        InitializeComponent();
    }

    private void LocalMethod()
    {
        CommonMethod();
    }


}

public partial class FormB : BaseForm
{
    public Form1()
    {
        InitializeComponent();
    }

    private void LocalMethod()
    {
        CommonMethod();
    }


}

也就是说,如果你的公共代码不涉及任何与UI相关的东西,那么@Gian Acuna有正确的答案,你可以用静态方法创建一个单独的类。