티스토리 뷰
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
'프로그래밍' 카테고리의 다른 글
VB 쓰레드 사용하기 (2) | 2016.03.14 |
---|---|
VB로 웹페이지 읽어오기 - 웹 스크랩 (1) | 2016.03.11 |
닷넷환경에서 SQLite 사용하기 - C# (0) | 2015.12.17 |
비베닷넷 사용자 컨트롤 활용 (0) | 2015.12.11 |
소스코드 전체에 라이선스 헤더 일괄로 붙이기 (0) | 2015.12.10 |
댓글