一个关于C#计算器写法的错误

问题描述

我想写一个计算器,刚写到加法的时候出现了这个错误!这里是源代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespace计算器{publicpartialclassForm1:Form{publicenumCalcuType//运算符{None,///<summary>///加减乘除///</summary>Addition,Substraction,Multiplication,Division,///<summary>///乘方///</summary>Involution,///<summary>///开方///</summary>Square,}privatedouble?_ValueF=null;//按下数字按钮前的数字privatedouble?_ValueL=null;//按下数字按钮后的数字privateCalcuType_CalculateType=CalcuType.None;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){btnVal0.Click+=newEventHandler(btnVal_Click);btnVal1.Click+=newEventHandler(btnVal_Click);btnVal2.Click+=newEventHandler(btnVal_Click);btnVal3.Click+=newEventHandler(btnVal_Click);btnVal4.Click+=newEventHandler(btnVal_Click);btnVal5.Click+=newEventHandler(btnVal_Click);btnVal6.Click+=newEventHandler(btnVal_Click);btnVal7.Click+=newEventHandler(btnVal_Click);btnVal8.Click+=newEventHandler(btnVal_Click);btnVal9.Click+=newEventHandler(btnVal_Click);}privatevoidbtnVal_Click(objectsender,EventArgse){Buttonbtn=(Button)sender;if(this._ValueF==null){this._ValueF=double.Parse(btn.Text);}else{this._ValueL=double.Parse(btn.Text);}this.txtValue.Text=btn.Text;}privatevoidbtnAddition_Click(objectsender,EventArgse){this._CalculateType=CalcuType.Addition;}privatevoidbtnResult_Click(objectsender,EventArgse){switch(_CalculateType){caseCalcuType.Addition:this.txtValue.Text=(_ValueF+_ValueL).ToString();try{this._ValueF=double.Parse(this.txtValue.Text);}catch{MessageBox.Show("噢!");}break;caseCalcuType.Substraction:break;caseCalcuType.Multiplication:break;caseCalcuType.Division:break;caseCalcuType.Involution:break;caseCalcuType.Square:break;}}privatevoidbtnC_Click(objectsender,EventArgse){this._ValueF=null;this._ValueL=null;this._CalculateType=CalcuType.None;this.txtValue.Text="0.";}}}当然还没有写完,但是在编译的时候没有错误,但是运行的时候出现了错误!错误就是我的那段trycatch代码里面的一句话我用trycatch就是排错如果我去掉trycatch软件的提示是这是winform的排版这个是我用winform做的请大神看看

解决方案

解决方案二:
txtValue文本框里面没有值,或者值不是数字了。就会出现解析错误。
解决方案三:
可以用double.TryParse,解析不成功,返回false.你在现实friendly的错误信息。
解决方案四:
还是没有太弄明白,您可不可在代码上标识一下!
解决方案五:
this.txtValue.Text=(_ValueF+_ValueL).ToString();try{this._ValueF=double.Parse(this.txtValue.Text);}catch{MessageBox.Show("噢!");}这个this.txtValue.Text显示的是什么把值放上来
解决方案六:
再输入时,具体说可能就是KeyDown事件中,你就要判断当前已经输入的字符串、加上刚键入的字符(可能要将keycode转为ascii字符),所得到的字符串进行tryparse转换,如果返回false,就直接为这个KeyDown事件的返回值设置“拒绝输入字符”。这才是传统计算器的设计。先学会复制出传统的业务逻辑流程,这个比你编程更重要。
解决方案七:
这个this.txtValue.Text是TextBox里面的显示的值但是现在当按钮按下的时候值不显示
解决方案八:
说明输入不是数字
解决方案九:
报错时看看CallStack走到哪里了
解决方案十:
this.txtValue.Text="0.";"0."没有办法转化为double
解决方案十一:
界面倒是还不错,但楼主能不能学学单步调试这个基本功啊。
解决方案十二:
因为空字符串转换一定失败。
解决方案十三:
try{//抓住错误}catch(System.Exceptionex){MessageBox.Show(ex.ToString());}

时间: 2024-12-10 04:12:45

一个关于C#计算器写法的错误的相关文章

我的第一个Android程序-计算器

基于Android 2.3.3做的一个练手计算器.  可解析带括号的四则运算.  解析算术表达式的时候,准备调用Webkit通过Js来解析的.  但是2.3.3存在Bug,Js调用Java会导致程序崩溃,  所以没办法,最后是用 BeanShell来解析的.  不过,因为需要每个参与计算的数字都是浮点型,  才能正确无误的保留精度,因为我正则不行,过滤表达式还是花了点功夫  首个Android程序,欢迎大家给与意见和指导~  标签: Android SDK 代码片段(4) [图片] calc.p

c++语法问题-C++ 缩写符号问题简洁写法的错误

问题描述 C++ 缩写符号问题简洁写法的错误 编写程序由从标准输入设备读入的元素数据建立一个int 型vector 对象,然后 动态创建一个与该vector 对象大小一致的数组,把vector 对象的所有元素复 制给新的数组#include<iostream> #include<vector> #include<string> #include<cstring> using namespace std; int main() { vector<int&

java生成一个简易的计算器

下面的代码是生成一个简易的计算器. Calculator import java.awt.*; import java.awt.event.*; import javax.swing.*; class CalculatorPanel extends JPanel implements ActionListener { public CalculatorPanel() { setLayout(new BorderLayout()); display = new JTextField("0"

一个显示效果非常不错的PHP错误、异常处理类

 这篇文章主要介绍了一个显示效果非常不错的PHP错误.异常处理类,代码思路清晰,功能强大,需要的朋友可以参考下 一.效果图:         二.实现代码    代码如下:<?php   // 自定义异常函数 set_exception_handler('handle_exception');   // 自定义错误函数 set_error_handler('handle_error');   /**  * 异常处理  *  * @param mixed $exception 异常对象  * @a

visual studio-vs2015新建了一个空白通用应用,命名空间错误,是不是我少装了某个.net框架,求解

问题描述 vs2015新建了一个空白通用应用,命名空间错误,是不是我少装了某个.net框架,求解 解决方案 以上代码,都是自动生成.你没有手动输入任何代码吗? Universal Windows Apps 是一个跨平台的方案,可能是 VS2015 软件有问题.你有没有安装最新的补丁包?VS2015 增加引用的方法 解决方案二: 代码都是自动生成的,我先修 解决方案三: 是不是没有引用什么库? 解决方案四: 楼主 解决了没?同样这个问题.. 解决方案五: 编译的时候注意顺序

服务器打不开一个php文件,出现500错误

问题描述 服务器打不开一个php文件,出现500错误 服务器打不开一个php文件 除了这个文件,其他php文件都正常运行,然后权限是777,这应该是什么问题呢? php文件里写phpinfo()运行不了 解决方案 [上传到服务器后的问题]某一个页面打不开Wowza 服务器打不开

最近在使用MyEclipse的SVN插件时总是弹出一个大大的对话框,报一个Failed to load JavaHL Library.错误

最近在使用MyEclipse的SVN插件时总是弹出一个大大的对话框,报一个Failed to load JavaHL Library.错误 Failed to load JavaHL Library.   These are the errors that were encountered:   D:\Genuitec\Common\plugins\org.tigris.subversion.clientadapter.javahl.win32_1.6.17\ssleay32.dll: 操作系统

服务器-本地服务和内网搭建服务公用一个SQL的时候取值错误。

问题描述 本地服务和内网搭建服务公用一个SQL的时候取值错误. 一个游戏,两个服务器.一个本地服务器,一个公司内网公用服务器.公用一个SQL,做了一个竞技场的功能.同一个号在内网进行竞技排名挑战功能.挑战完后转到本地服务器继续挑战竞技场排名.有概率出现排名错误,或者是排名数据错误

javascript-用myeclipse做了一个网站,报了500错误,求详细解答。

问题描述 用myeclipse做了一个网站,报了500错误,求详细解答. 用myeclipse10做了一个交友网站,注册完登陆后显示500错误,我觉得应该是路径错误, 但我不知道具体错误在哪里,求详细解答. 以下是我myeclipse中console后的错误报告: 信息: Server startup in 17270 ms service... 三月 22, 2016 10:33:24 上午 org.apache.catalina.core.StandardWrapperValve invok