ある種のコンパイラ エラーのように見える非常に奇妙な問題がありますが、それは非常にありそうもないことでもあります。
クラス変数を持つ 2 つの入れ子になったクラスがあります。それらの 1 つ ( SpriteList
) は完全に正常に動作し、すべての変数を完全に初期化します。ブレークポイントを設定すると、そのクラスを初期化するときにプログラムが中断します。
もう 1 つのネストされたクラス ( ItemList
) は、少し奇妙な動作をしています。その中のクラス変数は初期化されておらず、コードをブレークポイントしてもプログラムは決して壊れません。
これは私のコードです:
class Registry
{
public static Dictionary<string, StaticSprite> spriteRegistry = new Dictionary<string, StaticSprite>();
public static Dictionary<string, Item> itemRegistry = new Dictionary<string, Item>();
public static void registerSprite(string name, StaticSprite sprite)
{
spriteRegistry.Add(name, sprite);
Console.WriteLine("Registered Sprite: " + name + "!");
}
public static void registerItem(string name, Item item)
{
itemRegistry.Add(name, item);
Console.WriteLine("Registered Item: " + name + "!");
}
public class ItemList
{
public static Item test = new ItemTest();
}
public class SpriteList
{
public static StaticSprite rock = new SpriteRock();
public static StaticSprite pedestal = new SpritePedestal();
public static StaticSprite item = new SpriteItem();
}
}
ここで何が悪いのか本当にわかりません。どちらのクラスもどこにも構築されていませんが、それは問題ではありません。ItemList の変数を SpriteList に移動すると、正常に動作します。
ここで何が問題なのか、私にはまったくわかりません。