我有两个表格表格 A 和表格 B,我将使用它们将信息输入到 XML 文件中。现在,这两种形式将不得不调用一些基本相同的方法(相同的名称,相同的实现)。
我不能在这种情况下使用基类,因为 Form A 和 Form B 已经继承自System.Windows.Forms.Form. 我应该只使用这两种形式将实现的接口吗?我怀疑这将是最好的方法,因为他们需要的方法是相同的。
你能建议一个更好的方法吗?
谢谢。
为了代码重用并遵循所谓的“DRY”原则,您需要进行“EXTRACT CLASS”重构以避免代码重复。
如果上面的句子看起来如此通用,那么用外行的话来说,如果你不想以不同的形式有不同的实现并将代码移动到实用程序静态类,那么创建一个实用程序类是完美的候选者。
public static class Utility
{
public static void WriteToXML()
{
// come code here
}
}
您可以创建一个类来存储项目中的常用功能。您可以以任何形式调用这些函数。
namespace ProjectNameSpace
{
public class GenericFunctions
{
public static void WriteToXML()
{
// come code here
}
}
}
绝对可以引入 Form A 和 Form 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 有正确的答案,您可以使用静态方法创建一个单独的类。