C#

24.C# - 구조체

Godffs 2009. 8. 6. 16:08
반응형
구조체는 타입(int, char, string...)이 다른 변수들의 집합으로 사용됩니다.

배열은 동일한 타입들이 모아두는 곳입니다.


using System;

public struct Member //맴버라는 구조체
{
    public static string Name; //Name 이라는 필드(전역변수;맴버변수)
    public static int Age; //(Age Field, Global Variable, Member Variable)
}

public class 구조체
{
    public static void Main(string[] args)
    {
        //(로컬변수(Local Variable)) : 매인 메서드 안에서 선언된 변수
        //[1] 변수
        int num = 1234;

        //[2] 배열
        string[] names = { "홍길동", "백두산", "임꺽정" };

        //[3] 구조체 선언은 public class와 같은 클래스로 클래스 밖에
       선언해서 사용한다. (public struct로 선언 첫글자 대문자로 표기)

        Member.Name = "한라산"; Member.Age = 21;
       
        //[!] 출력
       //[1]
        Console.WriteLine("{0}",num);
       
        //[2]
        foreach (string name in names)
        {
            Console.WriteLine("{0}", names);
        }

        //[3]
        Console.WriteLine("{0}, {1}",Member.Name, Member.Age);
    }   
}


구조체확장
하나의 문서에서 구조체 선언 후 사용하는 방법 말고 다른 방법으로 새로운 클래스를
생성하여
생성된 클래스에 구조체를 선언하여 사용하는 방법이 있습니다.
새로 생성한 클래스안에 구조체를 선언합니다.
'Address.Class'
public struct Address
{
    public string Name;

    public int Age;

    public char Gender; //M,F

    public int aaa;
}

'구조체확장.Class' - 메인 -
using System;

public class 구조체확장
{
    public static void Main(string[] args)
    {
        //기본 구조체사용
        //기본구조체 형식 변수 선언
        Address addr; // Address 데이터형식
        //변수 초기화
        addr.Name = "홍";
        addr.Age = 21;
        addr.Gender = 'M';
        Console.WriteLine("{0},{1},{2}",addr.Name,addr.Age, addr.Gender);
    }
}

그림28-1 [ 기본 ]



예제1 - 선언과 배열 초기화
       //배열 선언
        Address[] addrs = new Address[2];
       
        //구조체 배열 초기화
        addrs[0].Name = "백";
        addrs[0].Age = 100;
        addrs[0].Gender = 'F';

        addrs[1].Name = "한";
        addrs[1].Age = 90;
        addrs[1].Gender = 'M';
      //출력
        for (int i = 0; i < addrs.Length; i++)
        {
            Console.WriteLine("{0}, {1}, {2}",
                        addrs[i].Name, addrs[i].Age, addrs[i].Gender);

        }

그림28-2 [ 예제 1]



예제2 - 선언과 동시에 초기화
Address a1; a1.Name = "백"; a1.Age = 100; a1.Gender = 'M';
Address a2; a2.Name = "한"; a2.Age = 50; a2.Gender = 'F';
Address[] addrs = new Address[2] { a1, a2 };

//출력
for (int i = 0; i < addrs.Length; i++)
{
     Console.WriteLine("{0}, {1}, {2}",
                 addrs[i].Name, addrs[i].Age, addrs[i].Gender);
}

그림28-2 [ 예제 2]



코드 실행할때...





반응형