在类中调用公共方法

时间:2015-11-03 08:46:10

标签: c# winforms visual-studio-2013

下面是我用来从Testing类中的doingThing()调用myMethod()的编码。但它有错误。

namespace Printing_io
{

public partial class Form1 : Form
{
    public class Testing
    {
        public void myMethod()
        {
           doingThing();  // error here
        }
    }

    public Form1()
    {
        InitializeComponent();            
    }

    public void doingThing()
    {
    }
  }
}

如何在doingThing()中调用函数myMethod()

2 个答案:

答案 0 :(得分:2)

如果不传入Form1的实例,就无法做到这一点。您可以通过将表单实例传递给方法,或者在初始化Testing类时保存表单实例,并将其传递给构造函数来执行此操作:

namespace Printing_io
{
    public partial class Form1 : Form
    {
        public class Testing
        {
            public void myMethod(Form1 form)
            {
               form.doingThing();  // error here
            }
        }

        public Form1()
        {
            InitializeComponent();            
        }

        public void doingThing()
        {
        }
    }
}

答案 1 :(得分:1)

两种方式:

将您的doingThing()函数声明为static:

public static void doingThing()

    public void myMethod()
    {
       Form1 f=new Form1()
       f.doingThing();  // error here
    }

需要实例化非静态方法。而静态方法可以直接调用。