문제

Parse ()와 tryparse ()의 차이점은 무엇입니까?

int number = int.Parse(textBoxNumber.Text);

// The Try-Parse Method
int.TryParse(textBoxNumber.Text, out number);

트리 캐치 블록과 같은 형태의 오류 확인이 있습니까?

도움이 되었습니까?

해결책

Parse 값을 구문 분석 할 수없는 경우 예외를 던지는 반면 TryParse 반환 a bool 성공 여부를 나타냅니다.

TryParse 단지 아닙니다 try/catch 내부적으로 - 그 요점의 요점은 예외없이 구현되어 빠르게 구현된다는 것입니다. 실제로 그것이 구현 될 가능성이 가장 높은 방식은 내부적으로 Parse 방법이 호출됩니다 TryParse 그런 다음 돌아 오면 예외를 던집니다 false.

간단히 말해서 사용하십시오 Parse 값이 유효 할 것이라고 확신하는 경우; 그렇지 않으면 사용하십시오 TryParse.

다른 팁

문자열을 정수로 변환 할 수 없다면

  • int.Parse() 예외를 던질 것입니다
  • int.TryParse() 거짓을 반환합니다 (그러나 예외를 던지지 마십시오)

TryParse 메소드를 사용하면 무언가가 변형 가능한지 테스트 할 수 있습니다. 유효하지 않은 INT로 첫 번째 인스턴스에서와 같이 구문 분석을 시도하면 TryParse에서는 예외가 발생합니다. 부울을 반환하여 구문 분석이 성공했는지 여부를 알려줍니다.

각주로서, 대부분의 tryparse 방법에 null을 통과하면 예외가 발생합니다.

tryparse 및 예외 세

문자열에서 지정된 데이터 유형으로 변환하면 예외가 발생하는 반면, TryParse는 명시 적으로 예외를 피하는 것을 피합니다.

TryParse는 값을 반환하지 않으며 구문 분석이 성공했는지 여부를 나타내는 상태 코드를 반환합니다 (예외를 던지지 않습니다).

레코드의 경우 두 가지 코드를 테스트하고 있습니다. 단순히 문자열에서 숫자로 변환하려고 시도하고 실패하면 숫자를 0으로 할당합니다.

        if (!Int32.TryParse(txt,out tmpint)) {
            tmpint = 0;
        }

그리고:

        try {
            tmpint = Convert.ToInt32(txt);
        } catch (Exception) {
            tmpint = 0;
        }

C#의 경우 가장 좋은 옵션은 TryParse를 사용하는 것입니다. Try & Catch Alternative는 예외를 던졌습니다.

A first chance exception of type 'System.FormatException' occurred in mscorlib.dll

그러나 고통스럽고 느리게 바람직하지 않지만 디버그의 예외가 정지되지 않으면 코드가 중지되지 않습니다.

나는 그것의 아주 오래된 게시물이라는 것을 알고 있지만 Parse vs Tryparse에 대한 자세한 내용을 공유 할 생각이 있습니다.

DateTime을 String으로 변환 해야하는 시나리오가 있었고 DateValue null 또는 String이면 예외에 직면하고있었습니다. 이를 극복하기 위해 Parse를 TryParse로 교체했으며 기본 날짜가 나타납니다.

오래된 코드 :

dTest[i].StartDate = DateTime.Parse(StartDate).ToString("MM/dd/yyyy");
dTest[i].EndDate = DateTime.Parse(EndDate).ToString("MM/dd/yyyy");

새 코드 :

DateTime startDate = default(DateTime);
DateTime endDate=default(DateTime);
DateTime.TryParse(dPolicyPaidHistories[i].StartDate, out startDate);
DateTime.TryParse(dPolicyPaidHistories[i].EndDate, out endDate);

다른 변수를 선언하고 tryparse에 사용하여 사용해야합니다.

double.parse ( "-"); double.tryparse ( "-", 구문 분석); Parses는 0으로 가득 차 있으므로 TryParse가 더 복잡한 변환을 수행한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top