Пример #1
0
    static void Main(string[] args)
    {
        float Value = 1.1323232323f;

        GTest.ConsolePrint(Value);

        GTest.ConsolePrint("lolololololol");

        GTest.ConsolePrint(13232313232);

        GTest.ConsolePrint("zzzzzzzzzzzz", "kkkkkkkkkk");

        //Inven<GameItem> NewGameItemInven = new Inven<GameItem>();
        //GameItem NewItem = new GameItem();
        //NewGameItemInven.ItemIn(NewGameItem)

        //Inven<CashItem> NewCashItemInven = new Inven<CashItem>();
        //CashItem NewItem = new CashItem();
        //NewCashItemInven.ItemIn(NewCashItem);
    }
Пример #2
0
    static void Main(string[] args)
    {
        GTest.ConsolePrint("아아아아");
        GTest.ConsolePrint <int>(3); // <>는 써도대고 안써도댐
        GTest.ConsolePrint(3);
        GTest.ConsolePrint(3.12345f);

        int    i = 20;
        string s = "dkdkdk";

        Console.WriteLine(s);
        Console.WriteLine(i); // < - 얘네는 제네릭은 아님. 오버로딩을
                              // 여러개 해놓은 것.



        // 이녀석은 무조건 <> 써줘야 대ㅔ
        Inven <GameItem> NewGameInven = new Inven <GameItem>();
        // 인벤은 인벤인데, <GameItem>을 담는 인벤이다!
        Inven <Cashitem> NewCashInven = new Inven <Cashitem>();

        // 인벤은 인벤인데, <Cashitem>을 담는 인벤이다!


        // 제네릭 클래스를 만드는 이유
        // 예를 들어보자 : Inven이라는 애가 있어.
        // 얘는 item[] Arritem; 이란 필드를 가지고 있어.
        // 근데 item을 두 가지로 나누고 싶은거야.
        // Cashitem과 Gameitem으로.
        // 그럼 Inven에다가 item[] 대신
        // Cashitem[], Gameitem[] 두 개를 다 만들어놔?
        // 아니면 아예 Inven을 GameInven, CashInven 두 개로 나눠?
        // 두 가지 방법 모두 비효율적이지.
        // 그 아이템타입 하나 빼면 다 똑같을텐데!
        // 그래서 제네릭을 쓰는거야.
        // Inven<Item_Type> 이런 식으로.
        // 그럼 필드는 Item_Type[] ArrItem; 이라하면 되겠지.



        NewCashInven.ItemIn(0, new Cashitem(10));
        Inven <Cashitem> .Test(NewCashInven.GetItem(0));



        // 여기서 생기는 궁금증.
        // 만약 gameitem/cashitem이 item의 자식 클래스라고 하자.
        // 그럼 부모인 Item을 넣으라고 표시한 곳에
        // 자식인 CashItem을 넣어도 될까? 되겠지? 업캐스팅이니까?

        Inven <Item> NewInven = new Inven <Item>();

        NewInven.ItemIn(0, new GameItem(5));
        Inven <Item> .Test(NewInven.GetItem(0));

        // 대넹.
        // NewInven.ItemIn(int _number, Item _Item)
        // Item타입을 넣는 곳에 GameItem을 넣어도 작동된다.
        // 반대는 불가능.
        // NewCashInven.ItemIn(0, new Item(10));
        // 다운캐스팅이니까.


        Console.ReadKey();
    }