C#

74.C# - 제네릭 클래스 (Generic Class)

Godffs 2009. 8. 18. 19:35
반응형
Program.cs
using System;
public class 제네릭클래스
{
    public static void Main()
    {
        //기본클래스 메서드 호출
        //Hello h = new Hello(); h.SayInt(1234); h.SayStr("안녕");

        //제네릭 클래스 호출
        Hello<int> hi = new Hello<int>(); hi.Say(1234);
        Hello<string> hs = new Hello<string>(); hs.Say("안녕");

        //생성자 호출
        Hello<string> say = new Hello<string>("반갑습니다.");
        say.Say();

        say.SayType();
    }
}

//제내릭 클래스 설계
public class Hello<T> //제내릭 메서드로 설정<T>
{
    //public void SayInt(int msg) { Console.WriteLine("{0}",msg); }
    //public void SayStr(string msg) { Console.WriteLine("{0}",msg); }
    //public void SyaObj(object msg) {
                       Console.WriteLine("{0}",msg); } //재일 편함 object 사용

     
    public void Say(T msg) {
                          Console.WriteLine("{0}", msg); } //제네릭 클래스 정의

       
    //생성자만들기   
    private T msg; //필드
    public Hello() { } //매개변수가 없는것
    public Hello(T msg) { this.msg = msg; } //매개변수가 있는것
    public void Say() { Console.WriteLine("{0}", this.msg); }

    public void SayType()
    {
        T temp; temp = default(T); //int : 0, string : null, bool = false;
                                                  기본값 출력 함(넘어오는 값이 없으면!)
                                              //default는 초기화 해주기 위해 사용
        Console.WriteLine("{0}",temp);       
    }
}
//제네릭클래스 똑같은 클래스를 하나로 줄인다
//하나의 변수에 제네릭사용

결과화면


74.Generic_Class.zip
다운로드

반응형