Blog Content

    티스토리 뷰

    24.C# - 구조체

    반응형
    구조체는 타입(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]



    코드 실행할때...





    반응형

    'C#' 카테고리의 다른 글

    26.C# - 열거형  (0) 2009.08.06
    25.C# 날짜관련 구조체  (0) 2009.08.06
    23.C# - 문자 구조체  (0) 2009.08.06
    22.C# - 제곱  (0) 2009.08.06
    21.C# - 합계  (0) 2009.08.06

    Comments