C# 构造函数与C语言中的多类通信#

C# 构造函数与C语言中的多类通信#,c#,forms,class,C#,Forms,Class,我的windows窗体应用程序中有两个C#类。在这个论坛中,我学习了如何在每个类中定义表单实例,反之亦然。下面是代码: 表格1: namespace WinFormApp1 { public partial class Form1 : Form { Class1 cls1; Class2 cls2; public Form1() { InitializeComponent();

我的windows窗体应用程序中有两个C#类。在这个论坛中,我学习了如何在每个类中定义表单实例,反之亦然。下面是代码:

表格1:

 namespace WinFormApp1
{
    public partial class Form1 : Form
    {
        Class1 cls1;
        Class2 cls2;

        public Form1()
        {
            InitializeComponent();
            cls1 = new Class1(this);
            cls2 = new Class2(this);

        }
    }
}
类别1:

using WinFormApp1;
class Class1
{
    private Form1 Frm1;

    public Class1(Form1 parent)
    {
        Frm1 = parent;
    }
}
using WinFormApp1;
class Class1
{
    private Form1 Frm1;

    public Class1(){}

    public Class1(Form1 parent)
    {
        Frm1 = parent;
    }
}
类别2:

using WinFormApp1;
class Class2
{
    private Form1 Frm1;

    public Class2(Form1 parent)
    {
        Frm1 = parent;
    }
}
它工作得很好,但现在我想在class2中调用class1方法,反之亦然。这样做的最佳方式是什么?我应该在每个类中定义另一个没有如下输入参数的构造函数,还是有更好的方法?有没有什么方法可以像上面那样使用现有的构造函数来定义class2中class1的实例,反之亦然

类别1:

using WinFormApp1;
class Class1
{
    private Form1 Frm1;

    public Class1(Form1 parent)
    {
        Frm1 = parent;
    }
}
using WinFormApp1;
class Class1
{
    private Form1 Frm1;

    public Class1(){}

    public Class1(Form1 parent)
    {
        Frm1 = parent;
    }
}

您可以在另一个类中创建一个类的实例,也可以使用静态方法调用代码而不需要引用


不管怎样,如果这些类共享了大量代码,你可以首先考虑合并它们。< / P>是的,你可以这样做…然而,你真的想要吗?为什么这些类实例需要相互调用?一旦你了解了当前的问题,你可能想考虑脱钩策略,以避免这种紧密耦合所产生的意面山。活动是一个很好的开始。@spender:谢谢你的评论。我有两个硬件,我正在读取它们并向它们发送命令。这就是为什么我将它们的方法放在单独的cs文件中。您是否有任何关于事件的例子或链接,以及它们对我的问题有何帮助?