首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以在catch块中使用以前在try块中分配的变量?

是否有一种方法可以在catch块中使用以前在try块中分配的变量?
EN

Stack Overflow用户
提问于 2016-05-19 11:10:50
回答 3查看 79关注 0票数 0

所以我刚刚做了一个由按钮和文本框(TbxSum)组成的基本计算器。

我遇到的问题是,如果输入了无效的和,我希望我的catch块取起它(确实如此),并将文本框中的内容替换为计算器中的最新结果(它没有)。

所以我说:

3+3=6

现在,我的计算器将把6放在文本框中,用于下一次和。

所以说我做了:

6/3

计算器拾取的内容无效,但我希望文本框值从前面的和返回到6。

这就是我尝试过的:

代码语言:javascript
运行
复制
var myButton = (Button)sender;

        if (myButton.Content.ToString() == "=")
        {

            DataTable dt = new DataTable();
            string s = tbxSum.Text;
            string result = "";

            if (s.Contains("("))
            {
                s = s.Replace("(", "*(");
            }

            try
            {
                var v = dt.Compute(s, "");
                tbkSum.Text = s + "=" + v.ToString();

                tbxSum.Text = v.ToString();
            }

            catch
            {   
                MessageBox.Show("Invalid Sum");
                tbxSum.Text = result;
            }
        }

我还有一个文本块(TbkSum),它显示了前面的和,所以我想,也许我可以把所有的东西都放在等号的右边,但是我不知道怎么做。

EN

Stack Overflow用户

发布于 2016-05-19 11:13:07

可以将旧值存储在try块之外的变量解密中,并在catch块中再次使用该变量:

代码语言:javascript
运行
复制
string oldSumValue = tbxSum.Text;

try
{
    // your code          
}
catch
{
    tbxSum.Text = oldSumValue ;
    MessageBox.Show("Invalid Sum");       
}
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37321465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档