==> 클래스복습.cs


using System;
using Hyundai;

public class 클래스복습
{
    public static void Main()
    {
        Hyundai.Car car = new Car("현대");

        car.Length = 2; // 2대

        car[0] = "에쿠스";
        car[1] = "제네시스";

        car.Show(); // 에쿠스, 제네시스

        // 대리자를 통한 호출
        CarHandler ch = new CarHandler(car.Show); // ch라는 대리자인스턴스를 생성하면서, Show라는 메서드를 등록
        ch();

        car.Go += car.Show;
        car.OnGo();
    }
}



==============================================================================================


==> Car.cs


using System;
// Namespace
namespace Hyundai
{
    // Class생성
    public class Car
    {
        // Field생성
        private string name;

        // Constructor생성
        public Car()
        {
            // Empty
        }
        public Car(string name)
        {
            this.name = name;
        }

        // Property
        private int _Length;
        public int Length
        {
            get { return _Length; }
            set
            {
                _Length = value;
                names = new string[value];
            }
        }

        // Indexer 생성
        private string[] names;
        public string this[int index]
        {
            get { return names[index]; }
            set { names[index] = value; }
        }

        // Method 생성
        public void Show()
        {
            Console.WriteLine("{0}", name);
            foreach (string s in names)
            {
                Console.WriteLine("{0}", s);
            }
        }

        // Destructor 생성
        ~Car()
        {
            names = null;
        }

        // Event생성
        public event CarHandler Go; // CarHandler라는 대리자타입으로 (이벤트'Go'를)만들겠다.

        // Event Handler 생성
        public void OnGo()
        {
            if (Go != null)
            {
                Go();
            }

        }
    }
    // Delegate 생성
    public delegate void CarHandler();
 
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

58. 클래스상속  (0) 2009.08.14
57. 네임스페이스(Namespace)  (0) 2009.08.14
55. 무명메서드  (0) 2009.08.13
54. 이벤트(Event)  (0) 2009.08.13
53. 대리자(Delegate)  (0) 2009.08.13
Posted by holland14
: