구조체(C# 및 Java)

업데이트: 2007년 11월

C#은 C에서 시작되었지만 Java에는 사용되지 않는 항목 중 하나인 struct 키워드를 지원합니다. struct는 간단한 클래스라고 이해할 수 있습니다. structs에는 생성자, 상수, 필드, 메서드, 속성, 인덱서, 연산자 및 중첩 형식이 포함될 수 있지만 대부분은 단순히 관련 필드 그룹을 캡슐화하는 데 사용됩니다. 구조체는 값 형식이므로 클래스보다는 약간 더 효율적으로 할당될 수 있습니다. structs는 abstract일 수 없고 구현 상속을 지원하지 않는다는 점에서 클래스와 다릅니다.

다음 예제에서는 매개 변수 없는 기본 생성자를 호출하는 new 키워드를 사용하여 struct를 초기화한 다음 인스턴스의 멤버를 설정합니다.

public struct Customer
{
    public int ID;
    public string Name;

    public Customer(int customerID, string customerName)
    {
        ID = customerID;
        Name = customerName;
    }
}

class TestCustomer
{
    static void Main()
    {
        Customer c1 = new Customer();  //using the default constructor

        System.Console.WriteLine("Struct values before initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
        System.Console.WriteLine();

        c1.ID = 100;
        c1.Name = "Robert";

        System.Console.WriteLine("Struct values after initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
    }
}

출력

위의 코드를 컴파일하고 실행하면 struct 변수가 기본적으로 초기화되었음을 출력에서 확인할 수 있습니다. int 변수는 0으로 초기화되고 string 변수는 빈 문자열로 초기화됩니다.

Struct values before initialization:

ID = 0, Name =

Struct values after initialization:

ID = 100, Name = Robert

참고 항목

작업

구조체 샘플

개념

C# 프로그래밍 가이드

참조

구조체(C# 프로그래밍 가이드)

기타 리소스

Java 개발자를 위한 C# 프로그래밍 언어