2013-03-08 66 views
2

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

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

你能提出一个更好的方法吗?

谢谢。

回答

1

代码重用并按照所谓的“干”的原则,你需要做的“提取类”重因子分解,来避免代码重复。

如果上面这句话看起来很通用的,所以在通俗地说,创建一个实用工具类是最合适的人选,如果你不希望有不同形式的不同实现和代码移到公用静态类。

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

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

namespace ProjectNameSpace 
{ 
    public class GenericFunctions 
    { 
     public static void WriteToXML() 
     { 
     // come code here 
     } 
    } 
} 
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(); 
    } 


} 

也就是说,如果你的常用代码不涉及任何用户界面相关的东西,然后@Gian Acuna有正确的答案,你可以用静态方法创建一个单独的类。