Int 형으로 컨버팅 하는 방법이 여러가지가 있는데
다음과 같은 차이가 있다.
http://www.codeproject.com/Articles/32885/Difference-Between-Int-Parse-Convert-ToInt-and
Int32.parse(string)
Hide Copy Code
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)
Hide Copy Code
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)
Hide Copy Code
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 |