c# - 表单是否像指针一样工作?

标签 c# winforms pointers

今天我尝试创建一个可重用的框架,我没有遇到任何问题...我创建了一个包含类 Game 的新文件“Game.cs”:

class Game
{
    Form Form;

    public Game(Form Form, int Width, int Height)
    {
        //Set Form
        this.Form = Form;
        this.Form.MaximizeBox = false;
        this.Form.FormBorderStyle = FormBorderStyle.Fixed3D;
        this.Form.Size = new Size(Width, Height);
    }
}

然后我使用 VisualStudio 将此文件添加到一个新的 Form 项目 Framework_Demo 中,它包含以下内容:

namespace Framework_Demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Here I created a new Object game using class Game
            Game game = new Game(this, 600, 600);
        }
    }
}

也许这很简单,我的问题可能已经过时了,但为什么当我调试 Framework_Demo 时出现 his Form 而且 具有我在构造函数中设置的属性 游戏类?这不是问题,但我想知道当我设置时会发生什么:this.Form = Form它真的像指针一样工作吗?有人可以向我解释这种行为吗?谢谢!

最佳答案

class Game
{
    Form Form;
}

这里的 Form 字段只是对另一个表单的引用,您可以在 Game 类的构造函数中获取该引用。通常这样做是为了在子窗体中保留对所有者窗体的引用。当您在构造函数中设置 Form 属性时,实际上是在修改所有者表单。

关于c# - 表单是否像指针一样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026926/

相关文章:

c# - 确定 Windows 窗体应用程序中的插入模式

c++ - 数组以某种方式被不使用数组的逻辑修改

c# - 如何取消订阅此 lambda 事件?

c# - C# 中的 GetWindowLong 与 GetWindowLongPtr

c# - 以编程方式更改 winforms 按钮文本颜色不起作用

c# - 奇怪的错误(输入字符串的格式不正确。)

c# - 动态更改对象的命名空间

c# - 如何使用WPF应用程序覆盖Prism中的默认区域管理器实现?

c - C 中命令行参数 `argv` 的类型是什么?

c++ - 为什么大于 128 的对齐会表现得很奇怪?