형 변환이랑 원래의 데이터형을 필요에 따라 다른 데이터형으로 바꾸는 것을 말한다. C#에서는 묵시적 형 변환과 명시적 형 변환이 사용된다.
묵시적 형 변환
코드에 직접 표현하지 않더라도 자동으로 형 변환이 이루어지는 것을 말한다. 이러한 묵시적 형 변환은 크기가 작은 유형의 변수를 크기가 크거나 같은 유형의 변수에 할당할 때 자동으로 이루어진다.
int myInt = 45;
float myFloat = myInt;
연산자는 일부 형 변환을 자동으로 처리한다. 문자열과 논리형 변수를 +연산하면 모두 문자열형으로 자동으로 변환되고, int 값과 float 값을 +연산하면 자동으로 float형으로 변환된다.
// B 부분에 코딩
bool myBool = true;
int myInt = 45;
float myFloat = 7.8F;
myFloat = myInt + myFloat;
ShowResult("합은 " + myFloat + "입니다. (" + myBool + ")");
명시적 형 변환
캐스팅 연산을 통해 데이터를 변환하는 것을 말한다. 변환하고자 하는 데이터형을 변수 앞에 괄호를 붙여서 선언해주는 연산자를 캐스팅 연산자라고 한다. 자동으로 이루어지지 않는 형 변환을 강제로라도 변환하고자 할 때 사용하며, 강제로 이루어진 명시적 형 변환으로 인해 뜻하지 않은 결과를 얻을 수 있다.
float myFloat = 7.8F;
int myInt = (int)myFloat; // 엉뚱한 값 52가 할당
연산에서는 원하는 결과를 위해 적절한 명시적 형 변환이 필요하다.
// B 부분에 코딩
int dividend = 7;
int divisor = 5;
// 몫 1을 원한다면
int quotient = dividend / divisor;
// 목 1.4를 원한다면
float quotientFloat = (float)dividend / (float)divisor;
ShowResult(quotient + " vs " + quotientFloat);
형 변환 메서드
ASP.NET 웹 페이지에서 넘겨지는 데이터는 문자열이 기본이기 때문에 형 변환 메서드는 매우 유용하다.
내장형 데이터에서 문자열로의 변환
C#의 모든 데이터형은 객체이며, 다른 언어들과 구별되는 특징 중 하나이다. C#의 모든 데이터형은 System.Object 클래스에서 파생된 것이기 때문에 ToString이라는 메서드를 사용할 수 있다. 임의의 데이터형에서 문자열로 변환하고자 할 때는 점표기법을 이용하여 [변수명].ToString()의 형태로 사용한다.
bool myBool = true;
int myInt = 45;
string stringBool = myBool.ToString();
string stringInt = myInt.ToString();
문자열에서 숫자형으로의 변환
string stringValue ="7";
int myInt = int.Parse(stringValue);
stringValue = "7.8";
float myFloat = float.Parse(stringValue);
Convert 객체 사용
.NET의 여러 다른 언어는 CTS(Common Type System)에서 정의하는 동일한 기본 데이터형을 사용하고 있다. 어넝마다 자신의 데이터형으로 표현되지만, 중간 언어 IL(Intermediate Language)에서는 CTS에서 정의된 기본 데이터형을 사용한다는 말이다. 이렇게 함으로써 언어와 시스템 환경에 관계없이 동일한 데이터형을 유지할 수 있다. Convert 클래스의 데이터형 변환 메서드는 C#의 데이터 형 이름을 사용하지 않고 CTS에 정의된 .NET의 데이터형 이름을 사용한다.
C# 이름 | .NET 이름 | C# 이름 | .NET 이름 |
byte | Byte | ulong | UInt64 |
short | Int16 | float | Single |
ushort | UInt16 | double | Double |
int | Int32 | decimal | Decimal |
uint | UInt32 | char | Char |
long | Int64 | bool | Boolean |
string stringValue = "7";
int myInt = Convert.ToInt32(stringValue);
stringValue = "7.8";
float myFloat = Convert.ToSingle(stringValue);
'ASP.NET 4.0' 카테고리의 다른 글
[ASP.NET] 제어문 (0) | 2021.12.27 |
---|---|
[ASP.NET] 연산자 (0) | 2021.12.27 |
[ASP.NET] C# 데이터형(2), 상수 (0) | 2021.12.27 |
[ASP.NET] C# 기초. 변수, 데이터형(1) (0) | 2021.12.24 |
[ASP.NET] 웹 페이지 코드 쓰기 (0) | 2021.12.24 |
댓글