C# 构造函数与C语言中的多类通信#
我的windows窗体应用程序中有两个C#类。在这个论坛中,我学习了如何在每个类中定义表单实例,反之亦然。下面是代码: 表格1: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();
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文件中。您是否有任何关于事件的例子或链接,以及它们对我的问题有何帮助?