这段代码为何没效果

.Net技术 码拜 9年前 (2015-11-16) 730次浏览
代码如下:

Double Sangel, Mangel,Hangel;
        public ClockNew()
        {
            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = new TimeSpan(0, 0, 0, 0, 50);
            timer.Tick += new EventHandler(timer_Tick);
            timer.Start();
        }
        private void timer_Tick(object sender, EventArgs e)
        {
            if (Sangel > 360) Sangel -= 360;
            if (Mangel > 360) Mangel -= 360;
            if (Hangel > 360) Hangel -= 360;
            Sangel += 1.5;
            if (Sangel % 6 == 0) Mangel += 0.1;
            if (Sangel % 72 == 0) { Hangel += 0.1; MessageBox.Show(Sangel + ""); }
        }

问:问什么MessageBox的消息弹不出来。

解决方案:10分
检查一下
1、timer能否开启
2、跟踪代码,看看if (Sangel % 72 == 0) { Hangel += 0.1; MessageBox.Show(Sangel + “”); }这一句代码能否执行
3、还有你这个timer是在构造函数里面创建的,timer的间隔很短,有可能from还没有加载完毕,if (Sangel % 72 == 0) { Hangel += 0.1; MessageBox.Show(Sangel + “”);就已经执行了
解决方案:5分
if ((Sangel % 72) <= double.Epsilon)
你这是在做浮点数比较,怎么可以用==
解决方案:5分
单步调试一下吧

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这段代码为何没效果
喜欢 (0)
[1034331897@qq.com]
分享 (0)