gpt4 book ai didi

c# - 如何重构这段代码?

转载 作者:太空狗 更新时间:2023-10-30 00:04:41 27 4
gpt4 key购买 nike

我正在使用 Visual C# 设计一个简单的计算器,但我遇到了一个烦人的运行时错误(这对于静态类型语言来说很有趣)。

首先让我向您展示部分代码:

private float get_input()
{
try
{
return float.Parse(textBox1.Text);
}
catch
{
textBox2.Clear();
textBox2.AppendText("Invalid Input");
return 0;
}

}

private void button1_Click(object sender, EventArgs e)
{
textBox2.Clear();
float v = get_input();
textBox2.AppendText((Math.Sin(v)).ToString());
}

问题是,当我运行程序时,例如,我在输入框中输入“a”,我的程序确实通过在输出框。但是,它随后会继续计算默认浮点类型的 sincos(等)。所以输出框中的答案看起来像:“invalid input1”或“invalid input0”。我提供了一个截图:

我确实意识到这是因为我告诉它在我调用 get_input() 方法后立即附加文本,但我真的不知道如何找到解决这个问题的方法。我试过用大约 7 种方式重构我的代码,但总会出错。

最佳答案

使用 TryParse 而不是 try...catch

private void button1_Click(object sender, EventArgs e)
{
textBox2.Clear();
float result;
if (float.TryParse(textBox1.Text, out result))
{
textBox2.AppendText(Math.Sin(result).ToString());
}
else
{
textBox2.Text = "Invalid Input";
}
}

关于c# - 如何重构这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com