Parse
- 문자열 표현을 해당하는 형식으로 변환한다
- 특정 형으로 변환할 수 없는 경우 FormatException 발생
- null 변환시 ArgumentNullException 발생
string numStr = "0.555";
string nullStr = null;
Int32.Parse(numStr); // FormatException
Int32.Parse(nullStr); // ArgumentNullException
TryParse
- 문자열 표현을 해당하는 형식으로 변환한다, 성공여부를 반환한다
string numStr = "0.555";
string nullStr = null;
int num = 0;
Int32.TryParse(numStr, out num); // false (0)
Int32.TryParse(nullStr, out num); // false (0)
Convert
- 기본 데이터 형식을 다른 데이터 형식으로 변환한다
- 모든 기본 형식을 다른 모든 기본 형식으로 변환하는 변환 메서드가 있다
- 실제 호출은 런타임에 기본 형식의 값과 대상 기본 형식에 따라 5가지 결과 중 하나를 생성한다
- null을 변환시 Exception을 호출하지 않고 기본값을 반환한다
5가지 결과
- 변환이 일어나지 않는다
- 같은 형식으로 변환을 시도할 경우 원래 형식의 인스턴스를 반환함
- Ex) Convert.ToInt32(Int32)
- 같은 형식으로 변환을 시도할 경우 원래 형식의 인스턴스를 반환함
- InvalidCastException 발생
- 특정 변환이 지원되지 않는 경우
- Char => Bool, Single, Double, Decimal, DateTime
- Bool, Single, Double, Decimal, DateTime => Char
- DateTime => String을 제외한 모든 type
- String을 제외한 모든 type => DateTime
- 특정 변환이 지원되지 않는 경우
- FormatException 발생
- 문자열 => 다른 기본 유형으로 변환 시도 실패시
- "True", "true", "False", "false"가 아닌 string => bool 변환 시도시
- 여러 문자로 구성된 string => Char 변환 시도시
- 숫자로 구성되지 않은 string => any numeric type으로 변환 시도시
- date, time value로 구성되지 않은 string => DateTime으로 변환 시도시
- 문자열 => 다른 기본 유형으로 변환 시도 실패시
- OverflowException 발생
- 축소 변환으로 인해 데이터가 손실될 때 발생
- Int32 type 10000 => Byte로 변환 시도시, 10000이 Byte 범위를 벗어나기 때문에 발생함
- 축소 변환으로 인해 데이터가 손실될 때 발생
- 성공적인 변환
'프로그래밍 > 공부' 카테고리의 다른 글
최대공약수 알고리즘, 유클리드의 호제법 +최소공배수 구하기 (0) | 2023.02.07 |
---|---|
소수 구하기, 에라토스테네스의 체 (0) | 2023.01.29 |
유니티와 셰이더 (0) | 2021.08.30 |
렌더링 파이프라인 (0) | 2021.06.18 |
2D 메트로베니아 or 자연스러운 진행형 게임에서의 맵 생성 (0) | 2021.05.06 |