2016-10-12 5 views
1

문자열을 숫자 대신 텍스트 상자에 입력하면 반응하는 간단한 오류 메시지 기능을 작성하는 방법을 이해하려고합니다.간단한 ErrorMessage 함수를 작성하는 방법

값 1과 값 2를 계산하려고하지만 문자열을 입력하면 레이블에 오류가 표시됩니다.

1 + 1 = 2

A + 1 = 에러

내 코드

Calculate.cs

public static string ErrorMessage() 
    { 
     string msg = ""; 
     try 
     { 
      //do sth 
     } 
     catch (Exception ex) 
     { 
      msg = "Wrong value"; 
     } 
     return msg; 
    } 

Calculator.asxc는

protected void Button1_Click(object sender, EventArgs e) 
    { 
    try 
     { 

      //calculate - works 
     } 
    catch 
     { 
      Error.Text = Calculate.ErrorMsg(); 
     } 

은 또한이 같은 STH을 시도했지만 작동하지 않는 것 :

Calculator.asxc

Calculate.cs

public static bool ErrorMessage(string value1, string value2) 
    { 
     bool check = true; 
     string error; 
     if (value1 != "" && value2 != "") 
     { 
      check = true; 
     } 
     if (value1 =="" || value2 =="") 
     { 
      check = false; 
      error = "Error!"; 
     } 
     return check;  
    } 

protected void Button1_Click(object sender, EventArgs e) 
    { 
    try 
     { 

      //calculate - works 
     } 
     // 
     catch 
     { 
     bool res = false; 

      res = Calculate.ErrorMessage(textBox1.Text, textBox2.Text); 

      Error.Text = res.ToString(); 
     } 

나는 두 번째 방법은 숫자 번호를 확인하지 않는다는 것을 알고 있지만, TI는

내가 잃어버린 해요 ... 도와주세요 않습니다 아무것도 works..but없는 경우 난 그냥 몇 가지 논리를 구현하고 볼려고

답변

2

내가 이해하는 것처럼 사용자가 number 대신 문자열을 입력하면 응용 프로그램에 오류 메시지가 표시되는 광고가 표시됩니다.

Int32.Parse() 또는 Int32.TryParse() 방법을 사용해야합니다. ParseTryParse에 대한 자세한 정보는 여기에 있습니다.

메서드 TryParse 문자열을 정수로 구문 분석 할 수 없으면 오류를 throw하지 않으므로 false가 반환됩니다.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    int a; 
    int b; 

    // Here we check if values are ok 
    if(Int32.TryParse(textBox1.Text, out a) && Int32.TryParse(textBox2.Text, b)) 
    { 
     // Calculate works with A and B variables 
     // don't know whats here as you written (//calculate - works) only 
    } 
    // If the values of textBoxes are wrong display error message 
    else 
    { 
     Error.Text = "Error parsing value! Wrong values!"; 
    } 
} 

당신이 ErrorMessage가 방법을 사용해야 할 경우, 여기에 당신이 변경하는 방법입니다 : 여기

은 수업에서이 방법을 사용하려면이 같은를 Button1_Click 방법 뭔가를 변경하는 방법을 예입니다

public static string ErrorMessage(string value1, string value2) 
{ 
    int a; 
    int b; 

    // If we have an error parsing (note the '!') 
    if(!Int32.TryParse(value1, out a) || !Int32.TryParse(value2, b)) 
    { 
     return "Error parsing value! Wrong values!"; 
    } 

    // If everything is ok 
    return null; 
} 

홉 : 당신의 ErrorMessage가 방법은, 그러나 이것은 더 복잡하다, 첫 번째 예는 쉽게 이것은 도움이됩니다. 더 많은 정보가 필요한지 물어보십시오.

+0

예, 당신은 내가 무엇을하려고하는지 가리 킵니다 ... 하지만 다른 웹 폼에 void 함수를 표시하는 방법은 무엇입니까? function ErrorMessage()는 value1, value2의 get-set 값을 확인한다고 가정합니다. – aiden87

+0

이 함수가 필요할 경우 첫 번째 예제를 편집하고 * ErrorMessage * 예제를 추가했습니다. 확인 해봐. –

+0

이것은 완벽하게 작동합니다! 코드를 통과하고 이해하려고 노력할 것입니다. 고마워! – aiden87

관련 문제