Convert.ToInt32
- 다양한 입력 형식: 문자열 외에도 bool, double, null 등 다양한 형식 지원
- 널 처리: null 입력 시 0 반환
- 사용 예시:
string strNumber = "123";
int number = Convert.ToInt32(strNumber); // 123
string nullString = null;
int number2 = Convert.ToInt32(nullString); // 0
int.Parse
- 문자열 변환 전용: 오직 문자열만 변환 가능
- 널 처리 없음: null 입력 시 ArgumentNullException 발생
- 사용 예시:
string strNumber = "123";
int number = int.Parse(strNumber); // 123
string invalidString = null;
// int number2 = int.Parse(invalidString); // 예외 발생 (ArgumentNullException)
(int) 명시적 형변환
- 숫자형 데이터 간 변환: 주로 double, float, long 등을 int로 변환
- 소수점 자르기: 소수점 이하 자르고 정수 부분만 반환
- 사용 예시:
double doubleValue = 123.45;
int number = (int)doubleValue; // 123
object obj = 123;
int number2 = (int)(double)obj; // 123
선택 기준
- 입력이 다양한 형식일 때: Convert.ToInt32
- 입력이 항상 유효한 문자열일 때: int.Parse
- 숫자형 데이터 간의 변환: (int) 명시적 형변환
이와 같은 기준을 기억하면, 각 상황에 맞는 최적의 변환 방법을 선택하여 코드의 안정성과 가독성을 높일 수 있습니다.
감사합니다.