2016-10-11 72 views
1

所以我嘗試創建一個方法,從TextBox中獲取值並檢查該值是否是SET方法中的數字。如何檢查SET方法中的數字是否是一個數字?

轉換TextBox值時出現錯誤,我想將它顯示爲try/catch異常,但必須在SET方法中進行驗證(Summary.FirstNumber,其中SET方法檢查它是否爲數字,否則返回ERRORMSG錯誤)

注:我有2個命名空間與類

1: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

我最好使用'int.TryParse'檢查該值是一個有效的int – Pikoh

+0

但是如果用戶輸入一個Double類型值,因爲它是用於計算的,它會返回一個四捨五入到小數點後兩位的數字? – McBooley

+0

那麼,那麼'Double.TryParse' – Pikoh

回答

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 ...

相關問題