我正在尝试制作一个简单的秒表,但它只是不起作用..当我按下按钮时应用程序崩溃了。怎么了?
public partial class MainWindow : Window
{
private DispatcherTimer timer;
public MainWindow()
{
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 1), DispatcherPriority.Normal, delegate
{
this.Show.Text = DateTime.Now.ToString("HH:mm:ss:fff");
}, this.Dispatcher);
}
private void Start(object sender, RoutedEventArgs e)
{
timer.Start();
}
private void Stop(object sender, RoutedEventArgs e)
{
timer.Stop();
}
}
答案 0 :(得分:4)
你的问题是:
DispatcherTimer timer = ...
您已经创建了一个定时器的新实例,该实例的作用域是您的构造函数。您尚未设置成员变量timer
。这意味着当您点击开始按钮时,您将尝试启动尚未实例化的计时器,并且您将获得NullReferenceException。我建议你:
timer
重命名为_timer
。这有助于避免与类似命名的局部变量混淆。DispatcherTimer timer = new DispatcherTimer
更改为_timer = new DispatcherTimer(...