C# 데이터 유형
C#에서 변수는 다음과 같은 유형으로 나뉩니다.
값 유형(값 유형)
값 유형 변수를 직접 할당할 수 있습니다. 값으로. 이는 System.ValueType 클래스에서 파생됩니다.
값 유형에는 데이터가 직접 포함됩니다. 예를 들어 int, char 및 float는 각각 숫자, 문자 및 부동 소수점 숫자를 저장합니다. int 유형을 선언하면 시스템은 값을 저장하기 위해 메모리를 할당합니다.
다음 표에는 C# 2010에서 사용할 수 있는 값 유형이 나열되어 있습니다.
Type | Description | Scope | 기본값 |
---|
bool | Boolean | True 또는 False | 거짓 |
byte | 8비트 부호 없는 정수 | 0 ~ 255 | 0 |
char | 16비트 유니코드 문자 | U +0000 ~ U +ffff | '
/ 10 | 0 ~ 28
0.0M | | double64비트 배정밀도 부동 소수점 (+/-)5.0 x 10-324 ~ (+/-)1.7 x 10 | 308 |
0.0D | float | 32비트 단정밀도 float-3.4 x 1038 ~ + 3.4 x 10 | 38 |
0.0F | int | 32명이 서명했습니다. 정수형 -2,147,483,648 ~ 2,147,483,6470 | |
long64비트 부호 있는 정수형 | -923,372,036,854,775,808 ~
9,223,372,036,854,775,807 | 0L | |
sbyte8비트 부호 있는 정수형 | -128~127 | 0 | |
short16비트 부호 있음 정수형 | -32,768 ~ 32,767 | 0 | |
uint32비트 부호 없는 정수형 | 0 ~ 4,294,967,295 | 0 | |
ulong64비트 부호 없는 정수형 | 0 ~ 18,446,744,073,709,5 51,615 | 0 | |
ushort16 없음 부호 있는 정수 유형 | 0 ~ 65,535 | 0 | |
특정 플랫폼에서 유형이나 변수의 정확한 크기를 구해야 하는 경우 sizeof 메소드를 사용할 수 있습니다. sizeof(type) 표현식은 객체 또는 유형의 저장 크기(바이트)를 산출합니다. 다음 예에서는 모든 시스템에서 int 유형의 저장소 크기를 얻습니다.
namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Size of int: {0 }" , sizeof(int));
Console.ReadLine(); 참조 유형
참조 유형은 변수에 저장된 실제 데이터를 포함하지 않지만 변수에 대한 참조를 포함합니다.
즉, 메모리 위치를 나타냅니다. 여러 변수를 사용할 때 참조 유형은 메모리 위치를 가리킬 수 있습니다. 메모리 위치의 데이터가 하나의 변수에 의해 변경되면 다른 변수는 자동으로 이러한 값 변경을 반영합니다. 내장된 참조 유형은 객체, 동적 및 문자열입니다.
객체 유형
객체 유형은 C# CTS(공용 유형 시스템)의 모든 데이터 유형에 대한 궁극적인 기본 클래스입니다. Object는 System.Object 클래스의 별칭입니다. 따라서 개체 유형에는 다른 유형(값 유형, 참조 유형, 미리 정의된 유형 또는 사용자 정의 유형)의 값이 할당될 수 있습니다. 그러나 값을 할당하기 전에 유형 변환이 필요합니다.
값 유형이 객체 유형으로 변환되는 것을 boxing이라고 하고, 객체 유형이 값 유형으로 변환되는 것을 unboxing이라고 합니다.
object obj;obj = 100; // 이것은 박스형
동적 유형동적 데이터 유형 변수에 모든 유형의 값을 저장할 수 있습니다. 이러한 변수의 유형 검사는 런타임 시 발생합니다. 동적 유형 선언 구문: dynamic <variable_name> = value;
예:
dynamic d = 20;동적 유형 지정은 객체 유형 지정과 유사하지만 객체 유형 변수에 대한 유형 검사는 컴파일 타임에 발생하고 동적 유형 변수에 대한 유형 검사는 런타임에 발생합니다.
문자열 유형
문자열 유형을 사용하면 변수에 문자열 값을 할당할 수 있습니다. String 형식은 System.String 클래스의 별칭입니다. 이는 객체 유형에서 파생됩니다. String 유형의 값은 따옴표와 @quotes라는 두 가지 형식으로 할당될 수 있습니다.
예:
String str = "w3cschool.cc";
A @quote string:
C# string 문자열 앞에 @를 추가할 수 있습니다( "Verbatim string"이라고 함)는 이스케이프 문자()를 일반 문자로 처리합니다. 예:
string str = @"C:Windows";
는 다음과 동일합니다.
string str = "C: \Windows" ;
@ 문자열에서 줄바꿈 문자를 임의로 끊을 수 있으며, 들여쓰기된 공백도 문자열 길이에 포함됩니다.
string str = @"<script type=""text/javascript"">
<!--
-->
</script>";
사용자 정의 참조 유형 클래스, 인터페이스 또는 대리자입니다. 우리는 다음 장에서 이러한 유형에 대해 논의할 것입니다.
포인터 유형
포인터 유형 변수는 다른 유형의 메모리 주소를 저장합니다. C#의 포인터는 C 또는 C++의 포인터와 동일한 기능을 갖습니다.
포인터 유형 선언 구문:
예: