ошибка исключения нулевой ссылки для моего приложения Windows Form - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть файл Setting.cs, содержащий информацию

[Serializable]
public class Setting
{
    public Setting()     {}

    public String defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\applause-2.wav";        
}

и мои настройки для получения информации по этому коду

Setting settingObject;
public SoundPlayer player;

public settingsForm(backgroundForm backgroundFormObject)
{
    InitializeComponent();
    this.backgroundFormObject = backgroundFormObject;
    settingObject = backgroundFormObject.getSetting();
}

private void InitializeSound()
{
    // Create an instance of the SoundPlayer class.
    player = new SoundPlayer();
    player.SoundLocation = settingObject.defaultAlertTone;

    // Listen for the LoadCompleted event.
    player.LoadCompleted += new AsyncCompletedEventHandler(player_LoadCompleted);

    // Listen for the SoundLocationChanged event.
    player.SoundLocationChanged += new EventHandler(player_LocationChanged);
}

Почему при каждом запуске приложения в

возникает исключение нулевой ссылки
player.SoundLocation = settingObject.defaultAlertTone;

backgroundFormObject.getSetting(); - это просто метод для получения объекта настройки. код для этого выглядит следующим образом

Setting settingObj = new Setting();

public Setting getSetting()
    {
        return settingObj;
    }

1 Ответ

2 голосов
/ 26 ноября 2011

Причины могут быть:

  1. InitializeSound() каким-то образом работает до settingsForm (маловероятно, но это сделает settingObject не инициализированным и ссылающимся на null).
  2. Если это полный код для класса Setting, я не вижу, как вызов new Setting() где-либо мог бы изменить ситуацию.Поэтому используйте Setting settingObject = new Setting(); при первом определении этого свойства в классе settingsForm.
  3. Это не settingObject, который является нулевым.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...