在c#中实例化Singleton
本文关键字:Singleton 实例化 | 更新日期: 2023-09-27 18:08:46
我试图在c#中实例化一个单例对象。
private static Mario __instance;
public static Mario Instance
{
get
{
if (__instance == null)
{
__instance = new Mario(); //TODO correct this vector
}
return __instance;
}
}
public Mario()
{
position = Vector2.Zero;
theatre = XNATheatre.Theatre;
ActionState = new IdleState();
PreviousState = ActionState;
ActionState.Enter(null);
isFacingRight = true;
}
我也有一个空闲状态类,正在马里奥的构造函数中实例化:
public IdleState()
{
mario = Mario.Instance;
Console.WriteLine(mario);
}
似乎发生的是_instance变量在我的单例中始终保持null,因此它不断返回mario的新实例,与我想要的完全相反。我不太确定如何绕过这个
你有一个循环依赖…当实例化一个Mario时,你实例化了一个调用Mario的IdleState。实例化一个新的马里奥并重复。