我试图在textBox中添加用户输入的数字。操作相当简单,但我要求尽可能优化代码。到目前为止,我已经创建了一个方法,我验证textBox是否为空。然后我有一个方法将字符串从textBox转换为" int"。但是,现在我不知道如何获取这些数字并在我的"总和中使用它们。方法。也许我忘记了一些基本的东西。
这是我的代码:
private void btnSum_Click(object sender, RoutedEventArgs e)
{
String num1 = txtNum1.Text;
String num2 = txtNum2.Text;
if(validate(num1,num2) == false)
{
MessageBox.Show("Empty fields");
}
else
{
convertNum(num1, num2);
MessageBox.Show("The sum is: ");
}
}
public static Boolean validate(String n1, String n2)
{
if (n1 == null || n1.Equals("") || n2 == null || n2.Equals(""))
{
return false;
}
else
{
return true;
}
}
public static void convertNum(String n1,String n2)
{
int num1 = 0;
int num2 = 0;
try
{
num1 = Int32.Parse(n1);
num2 = Int32.Parse(n2);
}catch(FormatException)
{
MessageBox.Show("Input only numbers.");
}
}
public static int sum(int n1, int n2)
{
int sum = n1 + n2;
return sum;
}
答案 0 :(得分:3)
首先,你可以改变你的“验证”功能:
public static Boolean validate(String n1, String n2)
{
if (n1 == null || n1.Equals("") || n2 == null || n2.Equals(""))
{
return false;
}
else
{
return true;
}
}
......对此:
public static Boolean validate(String n1, String n2)
{
return ((!string.IsNullOrEmpty(n1)) && (!string.IsNullOrEmpty(n2)));
}
......这一行:
if(validate(num1,num2) == false)
......可能是:
if (!validate(num1,num2))
答案 1 :(得分:3)
似乎只需要在按钮点击方法中执行所有逻辑就可以了。您的所有验证确实需要检查文本值是否可以解析为整数。 int.TryParse
将返回false表示null,空字符串以及不是有效整数的字符串,这就是您真正需要的所有内容。
private void btnSum_Click(object sender, RoutedEventArgs e)
{
int n1, n2;
if(int.TryParse(txtNum1.Text, out n1) && int.TryParse(txtNum2.Text, out n2))
{
MessageBox.Show("The sum is: " + (n1 + n2));
}
else
{
MessageBox.Show("Enter valid numbers");
}
}
答案 2 :(得分:1)
private void btnSum_Click(object sender, RoutedEventArgs e)
{
String num1 = txtNum1.Text;
String num2 = txtNum2.Text;
if(validate(num1,num2) == false)
{
MessageBox.Show("Empty fields");
}
else
{
var result = convertNum(num1, num2);
MessageBox.Show("The sum is: "+result);
}
}
public static int convertNum(String n1,String n2)
{
int num1 = 0;
int num2 = 0;
int result = 0;
try
{
num1 = Int32.Parse(n1);
num2 = Int32.Parse(n2);
result = sum(num1,num2);
return result;
}
catch(FormatException)
{
MessageBox.Show("Input only numbers.");
return result;
}
}
public static int sum(int n1, int n2)
{
int sum = n1 + n2;
return sum;
}