C\#프로 그래 밍 독학 데이터 형식 과 변수 3
데이터 형식 변환
프로 그래 밍 을 할 때 우 리 는 한 유형의 변 수 를 다른 데이터 형식 으로 바 꾸 는 것 을 만 날 수 있 습 니 다.우 리 는 이 를 데이터 형식의 변환 이 라 고 부 릅 니 다.C\#데이터 형식의 변환 은 다음 과 같은 두 가지 방식 이 있 습 니 다.
1.기본 보안 데이터 형식 변환
기본 안전 한 데이터 형식 변환:우 리 는 암시 적 데이터 형식 변환 이 라 고 부 릅 니 다.무엇이 암시 적 데이터 형식 변환 입 니까?암시 적 데이터 형식 변환 은 데이터 형식의 낮은 범위(C\#데이터 형식 과 변수 1 의 데이터 형식 범위 참조)에서 높 은 범위 의 데이터 형식 으로 전환 하 는 것 이다.예 를 들 면:
int a = 200; //int -2147483648~2147483647
long b = a; //long -9223372036854775808~9223372036854775807 200
//
Console.WriteLine("b = "+b.ToString());
실행 결 과 는"b=200"이라는 말 을 출력 합 니 다!2.강제 데이터 형식 변환
암시 적 데이터 형식의 전환 을 이해 한 후에 우 리 는 강제 적 인 유형 전환 을 알 게 되 었 다.강제 유형 전환 은 암시 적 데이터 형식 전환 규칙 에 만족 하지 않 을 때 데이터 형식 전환 방법 으로 데이터 형식 전환 을 강제 하면 반드시 오 류 를 일 으 킬 수 있다.예 를 들 어:
높 은 범위 의 데이터 형식(높 은 범위 로 약칭)을 낮은 범위 의 데이터 형식(낮은 범위 로 약칭)으로 변환 할 때'높 은'변수의 값 이'낮은'데이터 형식의 범 위 를 초과 할 때 우 리 는 데이터 형식 이 넘 쳤 다 고 약칭 한다.코드 는 다음 과 같 습 니 다:
long a = 3333333333; //long -9223372036854775808~9223372036854775807 ->3333333333
int b = (int)a; //int -2147483648~2147483647 -> 3333333333
Console.WriteLine("a =" + a.ToString());
Console.WriteLine("b ="+b.ToString());//
출력 결 과 는 다음 과 같 습 니 다.2.포장 과 분해
기본 데이터 형식의 전환 을 이해 한 후에 우 리 는 값 유형 과 인용 유형 간 의 전환 을 살 펴 보 았 습 니 다.우 리 는 포장 과 분리 라 고 부 릅 니 다.
1.포장
상자 에 넣 으 면 값 형식 을 참조 형식 으로 변환 합 니 다:
int a = 10;
object obj = a; // ,
포장 작업 을 할 때 운영 할 때 위탁 관리 더미 에 공간 을 분배 하고 a 중의 10 을 저장 하 며 이 공간의 포장 유형 은 int 임 을 표시 합 니 다.그림:
2.상 자 를 뜯 는 다
그 상 자 를 뜯 는 것 은 포장 과 반대로 인용 형식 을 회 값 형식 으로 복원 하 는 것 이다.
int a = 10;
object obj = a; //
int b = (int)obj; //
상 자 를 뜯 을 때 우 리 는 밀 린 10 강제 형식 을 스 택 공간 에 변환 합 니 다(그림 에서 int b 를 대표 합 니 다).그림 과 같다
3.포장 및 분해 작용
int float double 형식의 값 을 콘 솔 에 표시 하 는 방법 이 필요 합 니 다.일반적으로 우리 의 디자인 방법 은 다음 과 같다.
class MyProgram
{
// int
public static void ShowInt(int a)
{
Console.WriteLine(" a ="+a.ToString());
}
// float
public static void ShowFloat(float a)
{
Console.WriteLine(" a ="+a.ToString());
}
// double
public static void ShowDouble(double a)
{
Console.WriteLine(" a ="+a.ToString());
}
static void Main(string[] args)
{
int a = 10;
ShowInt(a);
float b = 2.2;
ShowFloat(b);
double c = 2.22;
ShowDouble(c);
}
}
그렇다면 이 럴 때 저 는 string,short,char 등 유형 을 지원 해 야 할 때 모든 유형 에 표시 하 는 방법 을 정의 해 야 하지 않 을까요?이때 우 리 는 포장 과 분해 개념 을 도입 한 방법 디자인 을 살 펴 보 았 다.
class MyProgram
{
// object
public static void ShowObject(object obj)
{
Console.WriteLine("obj ="+obj.ToString());
}
static void Main(string[] args)
{
int a = 10;
ShowObject(a); //int a
float b = 2.2;//float b
ShowObject(b);
double c = 2.22;//double c
ShowObject(c);
}
}
이렇게 하면 우 리 는 앞으로 아무리 많은 데이터 형식 을 확장 해 야 하 더 라 도 이 방법 을 만족 시 킬 수 있 을 것 이다.포장 은 쓰레기 회수 더미 에 값 형식 을 저장 하 는 데 사용 된다.포장 은 값 형식 이 object 형식 이나 이 값 형식 으로 이 루어 지 는 모든 인터페이스 형식의 암시 적 변환 입 니 다.값 형식 포장 은 더미 에 대상 인 스 턴 스 를 할당 하고 이 값 을 새로운 대상 에 복사 합 니 다.
C\#데이터 형식 과 변 수 는 여기까지 입 니 다.위의 세 편의 글 이 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.