하루 한 문법 세번째 시간입니다
이번에는 다양한 변환 작업을 수행하는 이전 Visual Basic 모듈인 Conversion 클래스에 대해 알아봅니다
* Conversion 클래스
우선 이 클래스는 Microsoft.VisualBasic.dll 에 정의되어 있습니다. 네임스페이스 역시 Microsoft.VisualBasic 입니다
즉 이전 비주얼베이직의 모듈을 C#에서 사용할 수 있게 지원하는 것입니다
Microsoft.VisualBasic.dll 은 기본으로 어셈블리 참조되어 있지 않기 때문에 Conversion 클래스를 사용하기 위해서는
이 어셈블리를 참조해야 합니다

그럼 이제 Conversion 클래스의 유용한 몇 가지 기능을 살펴 보겠습니다
1. Conversion.Val 메서드
Conversion 클래스의 정적 메서드인 Val 메서드는 문자열에 포함된 숫자 영역을 반환해 줍니다
다음 코드를 보죠
double result = Conversion.Val("12 3\t4\r\n5");
결과는 12345 숫자를 반환해 줍니다
중간에 있는 공백문자, 탭문자, 줄바꿈문자는 자동으로 제거되고 유효한 숫자인 12345을 반환받을 수 있습니다
만일 사용자로부터 입력 받는 값에 숫자 이외의 이러한 문자가 중간중간에 있을 경우 한방에 숫자만 빼오고 싶을
경우 유용하게 쓰시면 되겠습니다
보통 사용자로 부터 입력 받은 숫자값에 trim 으로 앞뒤 공백만 제거하지요..
이 클래스를 이용하면 앞/뒤 공백을 물론 중간 공백까지 완벽하게 제거할 수 있습니다
그러나 한가지는 유념해야 합니다.
위와 같이 공백,탭문자,줄바꿈문자 이외의 문자가 있다면 그 문자에서 읽기를 중단하게 됩니다.
다음의 코드를 보죠
double result = Conversion.Val("12얍34");
결과는 12입니다. 즉 ''얍'이라는 문자에서 읽기를 중단하여 뒤의 숫자 34는 반환하지 않는 것입니다
2. Conversion.Hex , Conversion.Oct 메서드
Conversion 클래스는 10진수 표현을 16진수, 8진수로 변환하는 메서드로 Hex,Oct 정적 메서드를 제공합니다
10진수 16을 16진수로 표현하면, 10 입니다
string result = Conversion.Hex(44032); //결과: AC00
또한 10진수 8은 8진수로 10이죠
string result = Conversion.Oct(8); //결과: 10
그리고 한글 '박'을 16진수로 표현하면 BC15가 됩니다
string result = Conversion.Hex('박'); //결과: BC15
3. Conversion.Fix , Conversion.Int 메서드
소수점이 있는 숫자에서 정수부분만 반환하고 싶다면 이 두 메서드를 이용하면 됩니다
Conversion.Fix(35.9) 와 Conversion.Int(35.9) 는 모두 35를 반환합니다
즉 35.9에서 소수부분인 0.9를 제외하고 정수 부분 35를 반환합니다
Fix 와 Int 의 차이점은 매개변수가 음수(-) 인 경우 다르게 처리합니다.
Conversion.Fix(-5.1) //결과: -5
Conversion.Int(-5.1) //결과: -6
즉 Fix 는 매개변수가 음수인 경우 매개변수보다 크거나 같은 첫 번째 음의 정수를 반환하고
Int 는 매개변수보다 작거나 같은 첫 번째 음의 정수를 반환하게 됩니다