안녕하세요. 애드라이프 입니다.
이전 포스팅에서 문자관련 데이터 형식을 다루었습니다.
이전 포스팅을 참고하고 싶은 분들은 아래 링크를 참고해 주세요.
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-2 <- 링크
이번 포스팅에서는 참조형식의 대표격인 Object형식과
데이터 형식 변환에 대한 내용을 다루려 합니다.
먼저 Object형식입니다.
Object 간단히 설명하자면 앞서 배운 데이터형식을 모두 담을 수있는 데이터 형식이라고 말씀드릴 수 있습니다. 어떻게 그럴 수 있을까요? 바로 '상속'이라는 개념 덕분입니다. 상속이라는 개념은 따로 뒤에서 자세히 다루겠지만
지금 간단히 설명드리면 '글을 지우다'라는 권한을 가진 부모 클래스가 있다고 가정하고 그 부모 클래스를 상속받는 자식클래스는 '글을 지우다'라는 권한을 똑같이 물려받게 됩니다.
위와 같은 개념을 이용해서 설명하면 Objcet는 byte, int, char, sting등등의 데이터 형식의 조상격이라 생각하면 됩니다. 그들의 상위에 존재하면서 나머지 데이터 형식은 Objcet를 상속받는거죠
|
어떻게 모든 데이터 형식을 표현할 수 있는지
프로그램을 보면서 개념을 익혀보도록 하겠습니다.
값자기 프로그램 컬러가 다 흰색으로 나와서
사진으로 대체했습니다. 짧으니 괜찮죠!?
여러 형식을 object형식에 대입해서 출력해도
각각 선언해서 해준결과와 동일하게 출력됨을 알 수 있습니다.
그리고 마지막 부분에 참고적으로 Boxing과 Unboxing에 대해
설명해 놓았으니 참고하기면 될 것 같습니다.
이제 데이터 형식 변환에 대해서 알아보겠습니다.
데이터 형식 변환 형변환의 기본 구성은 byte b=1; int a = (int)b 이런 구조를 가지고 있습니다. 괄호()안에 있는 형식으로 b라는 변수를 변환하겠다는 뜻이됩니다. 애초에 b는 byte형식으로 선언되어 있었고 이 변수를 int형으로 변환하고자 할때 위와 같은 방식으로 데이터 형식을 변환해 줍니다.
데이터 형식변환은 거의 모두 이와 같은 방식을 쓰지만 어떤 형식을 변환하느냐에 따라 주의해야 할 사항이 있습니다. |
데이터 형식 변환 관계 | 주의점 |
정수 - 정수 | 변수 형식에 따른 데이터 크기를 고려해야 한다. |
소수 - 소수 | 변환중 10진수를 거져가면서 원하지 않는 값이 나올 수 있다. |
부호 있는(ex int) - 부호 없는(ex uint) | 데이터의 범위를 고려해야 한다. |
소수 - 정수 | 내림으로 정수화됨을 인지한다. |
표에 정리된 대로 무턱대고 형식변환을 하면
자기가 원하는 데이터를 얻지 못하는 경우가 생깁니다.
좀 더 확실하게 프로그램을 보면서 개념을 익혀보겠습니다.
표로 나타낸 4가지 경우에 대한 프로그램입니다.
각각 주석을 달아 놓았으니 참고하시면 될 것 같습니다.
결과를 보면서 계속 애기 해보겠습니다.
자신이 예상했던 결과들과 같은 결과가 나왔나요?
예상치 못한 결과를 마주하신 분들도 있으실 꺼라 예상됩니다.
주의 사항으로 말씀드렸듯이 데이터 크기나 부호등을 잘 유념하면서
형식변환을 한다면 위와 같이 예상에 벗어난 결과를
마주할 일이 없을 테니 안심하셔도 됩니다.
프로젝트 생성 및 실행 방법에 대해 궁금하신분들은 아래 링크를 참조해주세요.
C# 프로그램 시작하기 - 간단한 콘솔 프로젝트 만들기 #2 <- 링크
자! 이제 대망의 마지막 형식 변환이며
어찌보면 정말 자주 쓸 예정(?)인 숫자 <-> 문자열 상호변환입니다.
상세하게 설명드리면 다룰 내용이 많아지기 때문에
여기서는 변환하는 방법만 다루도록 하겠습니다.
숫자 -> 문자열 예를 들어 int a = 777이라는 정수형 변수를 "777"이라는 문자열로 바꾸려면 어떻게 해야할까요?
int a = 777; string b = a.ToString();
위의 코드와 같이 a라는 정수형 변수에 ToString이라는 메소드를 호출해 주는 것만으로 해결됩니다. 물론 소수형 데이터 형식도 같은 방식으로 변환가능!!
문자열 -> 숫자
또, 예를 들어보죠 만약 "888.888"이라는 문자열을 소수형식으로 변환하려면 어떻게 해야 할까요?
float c = float.Parse("888.888"); 일부러 위에서 정수형을 다뤄서 이번에는 소수형으로 변환하였습니다. 두개 적절히? 잘 섞으면 완성!!! |
바로 프로그램 작성 및 결과를 보도록 하겠습니다.
지금까지 object형식과 여러가지 데이터 형식 변환에
대해서 다뤄봤습니다. 궁금한점이 있으시면 댓글로 남겨주세요.
다음에는 더욱 유익한 포스팅으로 돌아오겠습니다.
by 애드라이프
'C# 프로그래밍 > 기초 다지기' 카테고리의 다른 글
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-5 (0) | 2020.04.09 |
---|---|
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-4 (0) | 2020.04.08 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-2 (0) | 2020.04.06 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-1 (0) | 2020.04.04 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3 (0) | 2020.04.03 |