私は現在、「たまごっち」プログラムの構築を含む uni プロジェクトのプログラムに取り組んでいますが、各ペットに関連する値を格納するために使用したクラス構成に関連するかなり早い段階でエラーに遭遇しました。レコードの一部。ただし、プログラムをトレースすると、変数が初期化されていないように見えNullReferenceException
、プログラムが変数を初めて呼び出すと、エラーが発生します。理由についてのアイデアはありますか?
static class GlobalVars // Static class used to store pet values as 'global' variables.
{
public static TTamagotchiPet Pet1 { get; set; }
public static TTamagotchiPet Pet2 { get; set; }
public static TTamagotchiPet Pet3 { get; set; }
public static TTamagotchiPet Pet4 { get; set; }
}
public void frmTamagotchi_Load(object sender, EventArgs e) // On Load event; initialises Pet 1.
{
tmrUpdate.Enabled = true;
GlobalVars.Pet1.Active = true;
//GlobalVars.Pet1.Dead = false;
//GlobalVars.Pet1.FunValue = 0;
//GlobalVars.Pet1.FoodValue = 0;
//GlobalVars.Pet1.HealthValue = 0;
//GlobalVars.Pet1.ExertionValue = 0;
//GlobalVars.Pet2.Active = false;
//GlobalVars.Pet3.Active = false;
//GlobalVars.Pet4.Active = false;
}
private void tmrUpdate_Tick(object sender, EventArgs e) // Update timer. Each tick reduces pet attributes and checks to see if a pet has died, and controls pet states for the animation timer.
{
// First section updates pet attributes and checks to see if health reaches the 100 limit - at which point the pet dies.
if (GlobalVars.Pet1.Active == true) //code crashes here
{
if (GlobalVars.Pet1.Dead == false)
{
frmTamagotchi_load
このコードは、行のコメントが解除されている場合でも、残りの初期化 (メソッド内の多数の行をコメントアウトした場所) をスキップします。これは問題に関連している可能性がありますか?