C#如何优化简单的总和?

时间:2016-04-06 19:00:59

标签: c# wpf methods

我试图在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;    
}

3 个答案:

答案 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;    
}