본문 바로가기

프로그래밍/C# 프로그래밍

Int32.Parse(), Convert.ToInt32(), Int32.TryParse() 차이


Int 형으로 컨버팅 하는 방법이 여러가지가 있는데

다음과 같은 차이가 있다.

http://www.codeproject.com/Articles/32885/Difference-Between-Int-Parse-Convert-ToInt-and


Int32.parse(string)

string s1 = "1234"; 
string s2 = "1234.65"; 
string s3 = null; 
string s4 = "123456789123456789123456789123456789123456789"; 

int result; 
bool success; 

result = Int32.Parse(s1); //-- 1234 
result = Int32.Parse(s2); //-- FormatException 
result = Int32.Parse(s3); //-- ArgumentNullException 
result = Int32.Parse(s4); //-- OverflowException 

Convert.ToInt32(string)

result = Convert.ToInt32(s1); //-- 1234 
result = Convert.ToInt32(s2); //-- FormatException 
result = Convert.ToInt32(s3); //-- 0 
result = Convert.ToInt32(s4); //-- OverflowException 

Int32.TryParse(string, out int)

success = Int32.TryParse(s1, out result); //-- success => true; result => 1234
success = Int32.TryParse(s2, out result); //-- success => false; result => 0
success = Int32.TryParse(s3, out result); //-- success => false; result => 0
success = Int32.TryParse(s4, out result); //-- success => false; result => 0


Int32.parse 와 Convert.ToInt32(string) 차이는 파라미터가 null일때, 예외처리를 해주느냐 0으로 리턴하느냐의 차이다.

예외처리를 하는것보다 0으로 반환하는 Convert.ToInt32() 가 더 나아보이며

실제로 이것을 가장 많이 사용하는것 같다.


좀 더 안전하게 사용하기 위해서는 자체적으로 예외처리를 핸들링하는 Int32.TryParse를 사용하는게 나아 보인다.

'프로그래밍 > C# 프로그래밍' 카테고리의 다른 글

C#에서 typedef 사용법  (0) 2015.10.06
암시적 타입 var 키워드  (0) 2015.10.05
제너릭 클래스의 조건지정 - Where  (1) 2015.10.02
C# 튜토리얼 사이트  (1) 2015.10.02
파일 읽기 예제  (0) 2015.09.30