Winforms “我的windows窗体应用”的空引用异常错误
我有一个包含信息的Setting.cs文件Winforms “我的windows窗体应用”的空引用异常错误,winforms,Winforms,我有一个包含信息的Setting.cs文件 [Serializable] public class Setting { public Setting() {} public String defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\applause-2.wav"; } 和我的设置通过此代码检索信息 Setting settingObj
[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;
}
原因可能是
InitializeSound()
以某种方式在settingsForm
之前运行(不太可能,但这会使settingObject
未初始化并引用null
)设置
类的完整代码,我看不出在任何地方调用新设置()。所以使用settingsetingobject=newsetting()当您第一次在settingsForm
类中定义此属性时
settingObject
为空我们需要查看backgroundFormObject.getSetting()的代码,因为您的错误似乎就在这里。如果这样做,我将删除以前的设置?我的错误。这是你的全部设置类代码吗?无论如何,您的
backgroundFormObject.getSetting()
可能正在返回null
。在@Skuld的评论中,我们可以看到代码吗?