값 형식(C# 참조)
값 형식은 다음과 같은 두 개의 기본 범주로 구성됩니다.
구조체는 다음과 같은 범주로 구분할 수 있습니다.
숫자 형식
사용자 정의 구조체
값 형식의 기본 기능
값 형식을 기반으로 한 변수에는 값이 직접 포함됩니다. 값 형식 변수 하나를 다른 변수에 대입하면 변수에 포함된 값이 복사됩니다. 이는 참조 형식 변수를 대입하는 경우와 다릅니다. 참조 형식 변수의 경우 개체 자체가 아니라 개체에 대한 참조가 복사됩니다.
모든 값 형식은 암시적으로 System.ValueType에서 파생됩니다.
참조 형식과 달리 값 형식에서는 새 형식을 파생시킬 수 없습니다. 그러나 구조체는 참조 형식과 마찬가지로 인터페이스를 구현할 수 있습니다.
참조 형식과 달리 값 형식에는 null 값이 포함될 수 없습니다. 그러나 nullable 형식 기능을 사용하면 값 형식을 null에 대입할 수 있습니다.
각 값 형식에는 해당 형식의 기본값을 초기화하는 암시적 기본 생성자가 있습니다. 값 형식의 기본값에 대한 자세한 내용은 기본값 표를 참조하십시오.
단순 형식의 기본 기능
C# 언어에서 중요한 부분을 차지하는 모든 단순 형식은 .NET Framework 시스템 형식의 별칭입니다. 예를 들어, int는 System.Int32의 별칭입니다. 전체 별칭 목록은 기본 제공 형식 표(C# 참조)를 참조하십시오.
상수 식의 피연산자가 모두 단순 형식 상수인 경우 컴파일할 때 해당 상수 식이 계산됩니다.
단순 형식은 리터럴을 사용하여 초기화할 수 있습니다. 예를 들어, 'A'는 char 형식의 리터럴이며 2001은 int 형식의 리터럴입니다.
값 형식 초기화
C#의 지역 변수는 사용하기 전에 초기화해야 합니다. 예를 들어 다음 예제와 같이 지역 변수를 초기화하지 않고 선언한 경우
int myInt;
이 지역 변수는 초기화하기 전에는 사용할 수 없습니다. 다음 문을 사용하여 이 지역 변수를 초기화할 수 있습니다.
myInt = new int(); // Invoke default constructor for int type.
이 문은 다음 문과 동일한 결과를 가져옵니다.
myInt = 0; // Assign an initial value, 0 in this example.
물론 다음 예제와 같이 하나의 문으로 선언과 초기화를 수행할 수도 있습니다.
int myInt = new int();
– 또는 –
int myInt = 0;
new 연산자를 사용하면 특정 형식의 기본 생성자를 호출하여 해당 변수에 기본값을 할당할 수 있습니다. 앞의 예제에서 기본 생성자는 myInt에 0 값을 할당합니다. 기본 생성자를 호출하여 할당되는 값에 대한 자세한 내용은 기본값 표를 참조하십시오.
사용자 정의 형식에 new를 사용하여 기본 생성자를 호출할 수 있습니다. 예를 들어, 다음 문은 Point 구조체의 기본 생성자를 호출합니다.
Point p = new Point(); // Invoke default constructor for the struct.
이 호출 후 구조체는 명확하게 할당됩니다. 즉, 구조체의 모든 멤버가 기본값으로 초기화됩니다.
new 연산자에 대한 자세한 내용은 new를 참조하십시오.
숫자 형식 출력의 형식 지정에 대한 자세한 내용은 숫자 결과 형식 지정 표를 참조하십시오.