2009-08-21 8 views
2

오늘 우리는 Convert.ToMMM()보다는 항상 TryParse (문자열, MMM)를 사용해야한다는 기사를 읽었습니다.C# : tryparse vs

나는 기사에 동의하지만 이후에 나는 하나의 시나리오에 갇혀있다.

문자열에 유효한 값이 항상있을 것이므로 Covert.ToMMM()에서 예외가 없기 때문에 Convert.ToMMM()을 사용할 수도 있습니다.

여기서 내가 알고 싶은 것은 TryParse를 사용할 때 성능에 미치는 영향은 out 매개 변수가 항상 유효하다는 것을 알았 기 때문에 Convert.ToMMM() 대신 TryParse (string, out MMM)

당신은 어떻게 생각하십니까?

답변

9

을 알고있는 경우 값을 감추면 Parse() 만 사용하면됩니다. 변환 될 수 있다는 것을 '알면', 변환 할 수 없다면, 예외가 던져지는 것이 좋습니다.

편집 : 오류 검사없이 TryParse 또는 Convert을 사용하는 것과 비교됩니다. 다른 방법 중 하나를 사용하는 경우 중 적절한 오류를 확인하면 오류가 발생합니다. 나는 단지 당신이 당신의 가정에 대해 걱정하고있다. 을 알고있다. 값을 변환 할 수있다. 오류 검사를 건너 뛰려면 파싱을 사용하고 오류가 발생하면 데이터를 계속해서 손상시키지 말고 즉시 죽습니다.

1

TryParse/Convert.ToXXX의 입력이 사용자 입력에서 오는 경우, 항상 TryParse을 사용합니다. 데이터베이스 값의 경우, 내가 왜 string을 데이터베이스에서 얻었는지 확인하려고합니다 (아마도 나쁜 디자인입니까?). 문자열 값 으로 데이터베이스 열에 입력 할 수있는 경우 누구도 데이터를 수동으로 수정하지 못하도록하기 때문에 TryParse을 사용합니다.

편집
읽기 마태 복음의 답변 : 당신이 모르는 어쨌든 시도 - 캐치 블록의 변환을 포장 할 경우가 말했다대로 시도 - 캐치하는 것보다 빠른 방법으로 TryParse 사용을 고려할 수 그럴 경우.

0

사용하는 개발 방식에는 중요한 차이가 있습니다.

변환 : 다른 유형의 하나 "원시적"데이터를 변환하여 다양한 옵션을
케이스 및 포인트 사용 형식을 대응 - 비트 표현하여 비트에 정수로 변환한다. 또는 정수 등의 16 진수 ...
오류 메시지 : 변환 특정 오류 메시지 - 변환 프로세스의 여러 단계 및 여러 단계의 문제.

TryParse : 한 데이터 형식에서 다른 형식으로 오류가 덜 전송됩니다. 가능한 T/F 제어를 가능하게합니다.
오류 메시지 : NONE
NB : 심지어 변수의 데이터를 통과 한 후 - 전달 된 데이터는 우리가에 구문 분석을 시도 유형의 기본입니다.

구문 분석는 : 본질적으로 하나의 형식으로 일부 데이터를 복용하고 서로에 전송할 수 있습니다. 진술도없고 멋진 것도 없습니다.
오류 메시지 : 형식 지정

P. 내가 뭔가를 놓치거나 잘 설명하지 못하면 바로 잡으십시오.