0

我希望我能够将一个主类中的一堆方法包含到几个表单中。例子

class Master{
    public void kill(){
         this.Hide()
    }
 }

 class b : Form{
      //What must I do so that class 'b' can call kill, an it would mean that b would close
 }

首先我想如果Master继承Form,那么b可以继承Master,但是失败了。一点头绪都没有,真的很挣扎,欢迎大家评论。谢谢!

编辑

好的,有很多函数和变量需要复制到表单中。这就是为什么我想要类似于子类的东西。

4

3 回答 3

1

kill做成扩展方法。

public static class FormExtensions
{
    public static void Kill(this Form form)
    {
        ...
    }
}

或者如果您不希望它应用于每个表单,那么您可以扩展一个标记接口并将其应用于适用的表单

public interface IKillable
{  }

public static class KillableExtensions
{
    public static void Kill(this IKillable form)
    {
        ...
    }
}
于 2012-05-29T02:01:17.357 回答
0

您可以通过创建其对象来调用其他类的方法。

例子:

public class A 
{
   public void myMethod()
   {

   }
}


public class B
{
    A a = new A();            // here 'a' is an object of class 'A'
    a.myMethod(); 
}
于 2012-05-29T02:12:01.587 回答
0

做一个主人并称之为

class b : Form{
      //What must i do so that class be can call kill
      Master _master = new Master();

      void Stuff()
      {
         _master.kill();
      }


 }

您还可以制作扩展方法....假设没有您想要访问的 Master 成员

或者你可以让Master继承Form,然后让b继承Master

于 2012-05-29T02:03:53.913 回答