Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实现相同方法的表单_C#_Winforms_Class_Methods - Fatal编程技术网

C# 实现相同方法的表单

C# 实现相同方法的表单,c#,winforms,class,methods,C#,Winforms,Class,Methods,我有两个表单FormA和FormB,我将使用它们将信息输入到XML文件中。现在,这两种形式必须调用一些基本相同的方法(相同的名称,相同的实现) 我不能在此上下文中使用基类,因为表单a和表单B已经从System.Windows.Forms.Form继承。我是否应该使用这两个表单将实现的接口?我怀疑这是否是最好的方法,因为他们需要的方法是相同的 你能建议一个更好的方法吗 谢谢。您可以创建一个类,用于存储项目中的常用函数。您可以以任何形式调用这些函数 namespace ProjectNameSpac

我有两个表单FormA和FormB,我将使用它们将信息输入到XML文件中。现在,这两种形式必须调用一些基本相同的方法(相同的名称,相同的实现)

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

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


谢谢。

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

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

绝对有可能引入一个基本表单,表单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就有了正确的答案,您可以使用静态方法创建一个单独的类。

对于代码重用和所谓的“干”原则,您需要进行“提取类”重新分解,以避免代码重复

如果上面这句话用外行的话来说非常通用,那么创建一个实用程序类,如果您不想以不同的形式有不同的实现,那么这个实用程序类就是最好的候选者,并将代码移动到实用程序静态类

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