2009-05-02 8 views

답변

5

Convert.ToInt32(string)Int32.Parse(string) 수율 동일한 결과. 이 경우

Int32.Parse(null)Convert.ToInt32(null)는 0을 반환, ArgumentNullException

발생하지만.

그래서 그냥 보여 true 또는 false를 반환합니다) Int32.Parse(string)

+6

어느 쪽이 실제로 더 나은지는 당신의 필요에 달려 있습니다. – Joey

1

parse 메서드는 숫자 형식에 대한 옵션을 제공합니다. 그것 이외에, 그들은 사실상 동일합니다.

MSDN 말한다 : 문자열이 실제로 null 인 경우를 제외하고

Convert.ToInt32() details

Int32.Parse() details

1

Int.Parse를 (사용 구문 분석하려고도 형식을

Int.Parse(String, NumberStyles) 

을 받아 들일 수 당신은 또한 매개 변수를 지정할 수 있습니다 구문 분석하는 것이 더 좋습니다 구문 분석이 성공했는지 여부

1

int를 변환해야하는 경우 3 가지 옵션이 있습니다.

int.Parse 
Convert.ToInt32 
int.TryParse 

3 가지 중에서 가장 좋은 해결책은 대개 int입니다. 이 세 가지의 차이점은 속도와 신뢰성입니다. int 형 이외의 임의의 값 그것으로 전달되는 경우

  • int.Parse 예외가 발생한다. 일반적인 경험 법칙은 예외가 느리다는 것입니다.

  • Convert.ToInt32는 null을 처리하고 0을 반환하지만 은 다른 입력에 대한 예외를 throw합니다. 다시 한번 예외는 느립니다.

  • int.TryParse는 거의 모든 입력을 처리합니다. 전달 된 인수가 변환되었는지 여부에 따라 true 또는
    false를 반환합니다. 결과가 false 인 경우 변환 된 int는 0입니다. 결과가 true이면 int가 변환되고 int가 변환됩니다.

나는 int.Parse를 사용하지 않을 것입니다. 입력 내용이 정확할 것이라는 확신이 들었고 일종의 형식 유효성 검사가 있었다면 Convert.ToInt32를 사용하여 추가 선을 입력하지 않아도됩니다. 다른 모든 상황에서 나는 각각 int.TryParse

구문을 사용합니다 :

int result; 
boolean success; 

result = int.Parse(null) = Exception 
result = Convert.ToInt32(null) = 0 
success = int.TryParse(null, out result) = False/0 

result = int.Parse("asd") = Exception 
result = Convert.ToInt32("asd") = Exception 
success = int.TryParse("asd", out result) = False/0 
관련 문제