[프로그램]

C# 구조체(Struct)는 값 형식의 데이터를 나타내는 데 사용되는 사용자 정의 형식 예제

Blackberrys 2023. 6. 28. 08:47
반응형

C# 구조체(Struct)는 값 형식의 데이터를 나타내는 데 사용되는 사용자 정의 형식입니다. 구조체는 클래스와 유사한 멤버를 가질 수 있지만, 클래스와는 다른 동작 및 성질을 가지고 있습니다. 여기에서는 C# 구조체에 대해 더 자세히 알아보겠습니다.

  1. 구조체 정의: 구조체는 "struct" 키워드를 사용하여 정의됩니다. 일반적으로 구조체는 값 형식 데이터를 표현하고 해당 데이터에 대한 작은 메모리 할당이 필요한 경우에 사용됩니다. 구조체의 정의는 다음과 같은 형식을 가질 수 있습니다:

struct 구조체명
{
    // 멤버 변수 (필드)
    // 멤버 메서드
    // 생성자 등
}
 
멤버 변수 및 메서드: 구조체는 멤버 변수와 멤버 메서드를 가질 수 있습니다. 멤버 변수는 구조체 내에 데이터를 저장하는 데 사용되며, 멤버 메서드는 해당 데이터에 대한 동작을 정의합니다. 구조체의 멤버에는 필드, 속성, 메서드 등이 포함될 수 있습니다.
 
struct Person
{
    // 멤버 변수 (필드)
    public string name;
    public int age;
    
    // 멤버 메서드
    public void DisplayInfo()
    {
        Console.WriteLine("Name: " + name);
        Console.WriteLine("Age: " + age);
    }
}
 
구조체의 인스턴스 생성: 구조체의 인스턴스를 생성하기 위해서는 "new" 키워드를 사용하여 변수를 선언하고 생성자를 호출해야 합니다. 구조체는 값 형식이므로 "new" 키워드 없이도 인스턴스를 생성할 수 있습니다.
 
Person person1 = new Person();
person1.name = "John";
person1.age = 25;

Person person2; // "new" 키워드 없이도 인스턴스 생성 가능
person2.name = "Alice";
person2.age = 30;
 

  1. 구조체와 클래스의 차이점:
  • 구조체는 값 형식이고 스택에 할당되며, 클래스는 참조 형식이고 힙에 할당됩니다.
  • 구조체는 상속을 지원하지 않지만, 인터페이스를 구현할 수 있습니다.
  • 구조체는 기본 생성자를 가질 수 없지만, 매개변수를 받는 생성자를 정의할 수 있습니다.
  • 구조체는 복사될 때 값이 복사되고 원본과 독립적으로 작동합니다.
  1. 구조체의 활용: 구조체는 주로 작은 크기의 데이터를 표현하고 메모리를 효율적으로 사용하는 경우에 유용합니다. 예를 들어 2D 좌표, 날짜, 시간, 색상 등을 표현할 때 구조체를 사용할 수 있습니다. 또한 구조체는 객체 지향 프로그래밍에서 불필요한 객체 생성을 피할 수 있는 장점을 가지고 있습니다.

// 2D 좌표 구조체 예제
struct Point
{
    public int X;
    public int Y;
    
    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
    
    public void DisplayCoordinates()
    {
        Console.WriteLine("X: " + X + ", Y: " + Y);
    }
}

// 구조체 인스턴스 생성
Point p1 = new Point(10, 20);
p1.DisplayCoordinates(); // Output: X: 10, Y: 20
 
구조체는 값을 복사하여 사용하기 때문에 대량의 데이터를 처리하는 경우 메모리 사용과 성능 측면에서 유리할 수 있습니다. 그러나 구조체는 참조 형식인 클래스와 달리 박싱 및 언박싱 오버헤드가 없으며, 가비지 컬렉터의 관리 범위 밖에 있기 때문에 메모리 관리에 조금 더 주의해야 합니다.

I am a father of one boy and two girls living in Cheongju. We love to go "plogging" together every day. Plogging is an activity where we pick up litter while taking a walk, with the goal of preserving the environment and creating a clean community. It's a valuable time for our family to join forces.

You can find our activities on YouTube at https://www.youtube.com/@0070TV. We kindly ask for your support and encouragement.