如何检查SET方法中的数字是否为数字?

时间:2016-10-11 07:44:43

标签: c# try-catch setter

所以我尝试创建一个方法,从TextBox中获取一个值并检查该值是否为SET方法中的数字。

转换TextBox值时出现错误,我希望将其显示为try / catch异常,但必须在SET方法中验证(Summary.FirstNumber,其中SET方法检查它是否为' sa数字,否则它在ErrorMsg中返回错误

注意:我有2个带有类

的命名空间

1st:Projekt_STROKA.Calculator

第二名:MathFunctions.Summary

这就是我试图让它发挥作用的方式:

在Projekt_STROKA.Calculator

中按下按钮时的调用
protected void btnSum_Click(object sender, EventArgs e)
{
    MathFunctions.Summary summary = new MathFunctions.Summary();
    summary.FirstNumber = Convert.ToDouble(txbFirstNumber.Text); 
    //throws error if the input value is not a number
    summary.SecondNumber = Convert.ToDouble(txbSecondNumber.Text);
    txbSummary.Text = summary.Sum(summary.FirstNumber, summary.SecondNumber).ToString();
}

MathFunctions.Summary中的函数

Projekt_STROKA.Calculator calc = new Projekt_STROKA.Calculator();
private double firstNumber;
private double secondNumber;

public double FirstNumber
{
    set
    {
        if (IsNumber(firstNumber) == true)
            firstNumber = value;
        else
            throw new ArgumentNullException();
        /*        
        try
        {
            if (IsNumber(firstNumber) == true)
                firstNumber = value;        
        }
        catch (Exception ex)
        {
            calc.setError(ErrorMsg(ex.Message));          
        }
        */
    }
    get { return firstNumber; }
}

public string ErrorMsg(string message)
{
    return message;
}

public bool IsNumber(double number)
{
    if (number.GetType() == typeof(double))
        return true;
    else
        return false;
}

public double Sum(double firstNum, double secondNum)
{
    return Math.Round((firstNum + secondNum), 2);
}

1 个答案:

答案 0 :(得分:0)

我建议您使用以下代码段:

try
        {
            Object o = Console.ReadLine();
            double d = double.Parse(o.ToString());
        }
        catch (ArgumentException ex)
        {
            //
        }
        catch (FormatException ex)
        {
            //
        }
        catch (OverflowException ex)
        {
            //
        }


对其他类型使用相同的方法:int.Parse(),float.Parse(),decimal.Parse ...