《C#程序设计及应用教程》第三版 (马骏主编 )的一个bug
时钟动画的一个BUG
原著283页,有如下代码:
private void ClearCanvas()
{
if (acList != null)
{
foreach (var ac in acList)
{
ac.Controller.Remove();
}
acList.Clear();
acList = null;
}
Canvas1.Children.Clear();
}
这里把前面的画板和后台数据列表全部清除了。
然后在按钮执行中
private void Button_Click(object sender, RoutedEventArgs e)
{
Button btn = e.Source as Button;
if (btn != null)
{
string s = btn.Content.ToString();
switch (s) {
case "开始":
foreach (var ac in acList)ac.Controller.Begin();
break;
case "停止":
foreach (var ac in acList) ac.Controller.Stop();
break;
case "暂停":
foreach (var ac in acList) ac.Controller.Pause();
break;
case "继续":
foreach (var ac in acList) ac.Controller.Resume();
break;
case "移除":
ClearCanvas();
break;
}
}
问题在于,如果移除点击之后,再点开始的话,就会出现null异常。