티스토리 뷰

728x90

어떤 프로그래밍 언어이든지 타입간 변환은 자주 실수하거나 무심결에 넘겨버리고 하는 이슈입니다. 특히 문자열을 숫자로 전환해서 사용하는 과정에 꼼꼼하게 처리해 두지 않으면 불필요한 예외(Exception) 발생으로 곤혹함을 겪고는 합니다.

is_digit = false;
if (str.Length == 1 && int.TryParse(str, out tmp_n)) is_digit = true;

위의 코드는 문자열이 한자리의 숫자인지를 검사하는 로직으로 정수, 부동소수점수 각 타입별로 제공하는 TryParse 메소드를 적절하게 활용 할 수 있습니다. byte.TryParse,  int.TryParse,  Int16.TryParse,  Int32.TryParse,  Int64.TryParse,  uint.TryParse,  UInt16.TryParse,  UInt32.TryParse,  UInt64.TryParse,  float.TryParse,  Double.TryParse 처럼 각 타입별로 제공하는 TryParse 메소드는 문자열에 있는 숫자가 해당 타입으로 전환되면 true를 리턴합니다.

try
{
    port = Convert.ToInt16(_port);
    lowvalue = float.Parse(_value);
}
catch (Exception ex)
{
    port = 0;
    lowvalue = 0.0;
    errorMsg = ex.Message;
}

위의 코드는 Convert클래스의 변환 함수나 각 타입별 Parse() 메소드를 사용하는 문자열을 숫자로 변환하는 과정으로 주의할 점은 TryParse의 경우에는 예외를 발생시키지 않지만 Convert클래스의 변환 함수나 각 타입별 Parse() 메소드의 경우에는 문자열을 정상적으로 숫자로 변환할 수 없는 경우 예외를 발생시키므로 용도에 따라 적절하게 사용해야 합니다.


728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함