본문 바로가기
개발 이야기/C# 이야기

C# 형변환 캐스팅 모음 정리

by 런던살자 2021. 1. 17.

안녕하세요 마블랑입니다.

 

C# 닷넷 프로그래밍을 하다보면 정수에서 문자열로, 문자열에서 실수형으로 등등 변수의 형태를 변경해야할때가 많은데요

 

이것을 형변환(캐스팅)이라고 합니다.

 

대부분의 프로그래밍 언어를 배운 분들이라면 변수에 따라서 길이가 다 정해져있고 길이가 작은 변수에서 큰 변수로 변환할때는 암시적 형변환을 사용해서 어렵지 않게 할수있습니다. 대는 소를 포함하니까요

 

그런데 길이가 큰 변수에서 작은 변수로 형변환을 하려고 할때는 암시적 형변환으로는 컴파일 조차 되지 않는것으로 알고있는데요

 

그때 닷넷에서는 어떻게 해야 형변환을 할수있는지 정리해 보았습니다.

 

 

아래 화면처럼 직접 형변환을 해보았는데요

 

보기 어려워서 화면 아래 다시 정리해 두었습니다. 

 

형변환을 할때 문자열에서 형변환 할때는 Parse함수를 사용합니다.

 

문자열을 정수로 변경할때는 int.Parse(문자열), 실수형으로 변경할때는 double.Parse(문자열) 등이런식으로 이용합니다.

 

Parse 함수의 단점은 문자열 밖에 매개변수로 넣지 못한다는 점인데요

 

 

그래서 그 외 형변환은 Convert클래스를 이용합니다.

 

화면에서 볼수있듯이 Convert클래스에서 ToXXX 함수를 이용하면 매개변수에 어떠한 데이터타입이 와도 대부분 형변환이 가능합니다.

 

게다가 샘플코드 하단에 보면 다양한 데이터형 형변환을 할수 있으므로 아주유용하게 쓰일수 있습니다.

 

샘플코드에는 일부분만 나와있으니 다른 형변환을 원하면 Convert.To 까지만 입력해보면 어떤 데이터타입이 형변환 가능한지 알수 있습니다~

 

 

추가로 만약에 형변환을 하기전 데이터가 형변환 후의 타입과 데이터형식이 맞지 않는다면 에러가 발생합니다.

 

아래 화면은 소수를 정수형으로 형변환 했을때 에러 입니다.

 

그리고 아래 화면은 음수의 값을 unsigned 형으로 형변환했을때 에러 입니다.

 

 

이렇게 코드에서 제공하는 형변환을 명시적 형변환이라고 하는군요

 

개인적으로 형변환을 할때는 암시적인 방법을 쓰지 않고 명시적으로 하려고 하는편인데요

 

명시적으로 해야 변수가 어떻게 형변환이 되었는지 알기 쉬워서 그렇긴 합니다.

 

프로그래밍에서는 변수의 타입이 바뀌는 것으로도 결과가 크게 달라지는 경우가 있으니까요~

 

2020/03/14 - [개발 이야기/개발자 이야기] - C++ MFC CString to BYTE Array, BYTE Array to CString Casting

 

C++ MFC CString to BYTE Array, BYTE Array to CString Casting

안녕하세요 마블랑입니다. 비주얼 스튜디오를 이용해 C++이나 MFC 프로그램을 개발할때 문자열을 바이트 배열로, 바이트 배열을 문자열로 컨버팅 해야하는 경우가 있습니다. 이번 포스팅은 간단

sosobaba.tistory.com

2020/03/14 - [개발 이야기/C# 이야기] - C# .Net String to Byte array, Byte array to String Convert문자열 변환

 

C# .Net String to Byte array, Byte array to String Convert문자열 변환

안녕하세요 마블랑입니다. C#에서 데이터 통신을 할때면 바이트형식으로 변환해야할 때가 많습니다. 통신 패킷을 구조체로 만들어 전체를 변경하는 방법이 있긴 하지만 데이터를 하나씩 일일이

sosobaba.tistory.com

2019/06/24 - [개발 이야기/리눅스 이야기] - [C] char array to int, char array to double

 

[C] char array to int, char array to double

안녕하세요 마블입니다. 프로그래밍을 하면서 형변환 해줘야할때가 굉장히 많죠 C#이나 자바같은경우에는 형변환 기능이 클래스로 제공되어서 간편하게 할수있습니다. C언어는 이러한 클래스

sosobaba.tistory.com

 

 

 

이상 마블랑이었습니다. 

 

읽어주어서 고맙습니다.

댓글