Я очень запутался в данный момент.
У меня есть следующий класс: (Просто часть класса):
public class GUIWindow
{
#region Static Fields
//The standard image for windows.
public static IngameImage StandardBackgroundImage;
#endregion
}
IngameImage - это только один из моих собственных классов,но на самом деле он содержит Texture2D (и некоторые другие вещи).В другом классе я загружаю список GUIButtons путем десериализации XML-файла.
public static GUI Initializazion(string pXMLPath, ContentManager pConMan)
{
GUI myGUI = pConMan.Load<GUI>(pXMLPath);
GUIWindow.StandardBackgroundImage = new
IngameImage(pConMan.Load<Texture2D>(myGUI.WindowStandardBackgroundImagePath),
Vector2.Zero, 1024, 600, 1, 0, Color.White, 1.0f,
true, false, false);
System.Console.WriteLine("Image loaded? " +
(GUIWindow.StandardBackgroundImage.ImageStrip != null));
myGUI.Windows = pConMan.Load<List<GUIWindow>>(myGUI.GUIFormatXMLPath);
System.Console.WriteLine("Windows loaded");
return myGUI;
}
Вот эта строка: System.Console.WriteLine ("Изображение загружено?" +
(GUIWindow.StandardBackgroundImage.ImageStrip!= ноль));Отпечатки "правда".Для загрузки GUIWindows мне нужен «пустой» конструктор, который выглядит так:
public GUIWindow()
{
Name = "";
Buttons = new List<Button>();
ImagePath = "";
System.Console.WriteLine("Image loaded? (In win) " +
(GUIWindow.StandardBackgroundImage.ImageStrip != null));
//Image = new IngameImage(StandardBackgroundImage);
//System.Console.WriteLine(
//Image.IsActive = false;
SelectedButton = null;
IsActive = false;
}
Как видите, я прокомментировал строки в конструкторе.Потому что: в противном случае это может привести к сбою.Здесь строка System.Console.WriteLine («Изображение загружено? (В win)» + + (GUIWindow.StandardBackgroundImage.ImageStrip! = Null));Ничего не печатается, просто происходит сбой со следующим сообщением об ошибке:
Создание содержимого сгенерировано NullReferenceException: для ссылки на объект не задан экземпляр объекта.
Почему это происходит?Прежде чем программа захочет загрузить список, она выводит «true».Но в конструкторе, поэтому при загрузке списка выводится «false».Кто-нибудь может сказать, пожалуйста, почему это происходит и как это исправить?