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

本文关键字:数字 是否 方法 SET 何检查 检查 | 更新日期: 2023-09-27 18:12:35

所以我尝试创建一个方法,在那里我从文本框中获得一个值,并检查该值是否在SET方法中是一个数字。

在转换TextBox值时,我得到一个错误,我想将其显示为try/catch异常,但必须在SET方法(摘要)中进行验证。FirstNumber,其中SET方法检查它是否是一个数字,否则在ErrorMsg中返回一个错误)

注意:我有两个命名空间与类

1: Projekt_STROKA。计算器

2: MathFunctions。摘要

这是我试图使它工作的方法:

在Projekt_STROKA中按下按钮时的调用。计算器

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中的函数。摘要

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);
}

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

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

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。解析…