c# - 在彼此中实例化两个类中的每一个

标签 c# .net winforms class class-design

我有一个 C# 类问题,希望得到一些帮助。我有一个名为 CountdownUserControl 的类。这个类中有许多函数。然后我有另一个类(class)叫 Min。在 CountdownUserControl 类中的这种形式中,我需要某些东西,因此我在 CountdownUserControl 中创建了它的一个实例:

public partial class CountdownUserControl : UserControl
{
    //-----------------------------------------------
    // Private data members
    //-----------------------------------------------
    private Min _Min = new Min();

但是在 Min 类中我也想使用一个包含在 CountdownUserControl 类中的函数 - 但是我不能在 Min 类中创建它的实例,例如

public partial class Min : Form
{
    private CountdownUserControl CU = new CountdownUserControl();

这样我就可以在 Min 类中执行 CU.Method_I_want();

因为这会导致计算溢出。有谁知道解决方案吗?感谢您的宝贵时间。

最佳答案

类和方法

类不应该仅仅被视为方法的集合,当它们被new创建(“实例化”)时,它们就变成了应该被这样对待的实际对象。

您需要重新考虑您的策略,而不是简单地引用 MinCoundownUserControl 对象。每一个代表什么?您建议 UserControl(Form 的一部分)需要为其创建自己的 Form - 事实并非如此。 Form创建 UserControl 的对象。 UserControl 可以使用 ParentForm 属性访问 Form

StackOverflow

当您执行此操作时:new Min() 您正在创建一个新的 Min 对象。然后,在 Min 中,当您执行此操作时:new CountdownUserControl() 您正在创建一个新的 CoundownUserControl 对象。这又会创建一个新的 Min 对象,依此类推。

如何解决您的问题

简单地说,如果您确定用户控件位于类型为 Min.

最后/另外,您不应该自己创建 CountdownUserControl 的实例,除非您要设置属性并将其添加到表单的 Controls 集合中你的代码。相反,构建您的项目,将 CountdownUserControl 拖放到您的表单上 - 将在您的 Min 类上自动创建一个用于访问该控件的属性,称为 countdownUserControl1.

关于c# - 在彼此中实例化两个类中的每一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7010612/

相关文章:

c# - 如何在 Windows 10 UWP 中为网格添加触摸操作事件?

c# - 一个简单的代码顺序

c# - 转换为 Base64 时从字节数组中获取反转图像

.net - 如何在 where 子句中将 UserDefinedFunctionProvider.Invoke 与 udfs 结合使用

winforms - BufferedGraphicsContext 错误

c# - 按顺序循环父控件

c# - C#中抽象类的构造函数

.net - 为什么我不能与在运行时动态加载到同一加载上下文中的程序集共享类型?

.net - 在 Windows Mobile 6.5 中禁用菜单栏

c# - 为什么我的类文件在内存中启动时不执行?