我是c#的新手,我正在寻找如何在winform中调用全局对象实例。
namespace BeastEngine {
public partial class Form1 : Form
{
private Root mRoot = new Root();
private RenderWindow mWindow;
private SceneManager mgr = mRoot.CreateSceneManager(SceneType.ST_GENERIC);
private Camera cam = mgr.CreateCamera("Camera");
现在我正在调用我的变量,但是我遇到了各种错误。
private void meshToolStripMenuItem_Click(object sender, EventArgs e)
{
Entity ent = mgr.CreateEntity("ninja", "ninja.mesh");
mgr.RootSceneNode.CreateChildSceneNode().AttachObject(ent);
cam.LookAt(ent.BoundingBox.Center);
}
我想要它以便我的所有函数都可以使用一个实例。有谁知道正确的方法?我到处搜索了。
答案 0 :(得分:1)
您正在寻找Singleton模式。如果你搜索它,你应该得到更多的结果。
以下是Microsoft对Implementing a Singleton的建议。
答案 1 :(得分:0)
您不能在构造函数
之外使用实例变量private Root mRoot = new Root();
private SceneManager mgr = mRoot.CreateSceneManager(SceneType.ST_GENERIC);
private Camera cam = mgr.CreateCamera("Camera");
您应该在构造函数中实例化它。
private Root mRoot;
private SceneManager mgr;
private Camera cam;
public Form1()
{
mRoot = new Root();
mgr = mRoot.CreateSceneManager(SceneType.ST_GENERIC);
cam = mgr.CreateCamera("Camera");
}
如果您想确保只知道这是在构造时创建的,您可以创建变量readonly