【发布时间】:2011-11-06 12:15:02
【问题描述】:
今天我尝试创建一个可重用的框架,我没有问题...我创建了一个包含 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 将此文件添加到一个新的表单项目 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 时出现他的表单而且还出现我在的构造函数中设置的属性Game 上课?这不是问题,但我想知道当我设置时会发生什么:this.Form = Form。 它真的像指针一样工作吗?有人可以向我解释这种行为吗?谢谢!
【问题讨论】:
-
是的,
Form是一个引用类型。我要补充一点,虽然有一个带有Form参数的Game类并不是一个很好的设计。您的 UI 将与Game类紧密耦合,您最终会将Form中的几乎所有内容都公开以便可以对其进行操作,并且您的Game类几乎肯定会最终成为巨大而且做得太多。