Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        Debug.Log("@@========");

        int tResult = 0;

        tResult = DoSquare(3);
        Debug.Log(tResult);


        MyCallFunc tCallFunc = DoSquare;

        //tCallFunc = new MyCallFunc(DoSquare);
        tResult = tCallFunc(4);
        Debug.Log(tResult);

        tResult = tCallFunc.Invoke(2);
        Debug.Log(tResult);


        MyCallExamMultiCase tCall = null;

        tCall += InputControl;
        tCall += new MyCallExamMultiCase(DisplayToConsole);
        tCall += SaveToFile;

        tCall();


        tCall -= DisplayToConsole;
        tCall.Invoke();


        CUnit      tUnit         = new CUnit();
        MyCallFunc tUnitCallFunc = tUnit.Doit;

        tUnitCallFunc(777);
    }
Ejemplo n.º 2
0
    // Use this for initialization
    void Start()
    {
        Debug.Log("@람다표현식");


        MyCallFunc tMyCall = (value) => { return(value * value); };

        tMyCall = value => value * value;
        //매개변수가 단 하나이고, 그 형식을 추론할 수 있는 경우에는 중괄호쌍을 생략하고 더 간단히 표기할 수도 있다.

        //Func, Action대리자와 함께 쓰이는 예시.
        //( Func, Action대리자는 C#에서 제공하는 범용 대리자이다. )
        Func <int, int> tMyFunc = value => value * value;

        Debug.Log(tMyFunc(4));


        //외부변수 갈무리
        //outer variable, captured variable, closure
        int             tFactor           = 777;
        Func <int, int> tMyFuncWithFactor = value => value * tFactor;

        Debug.Log(tMyFuncWithFactor(4));
        tFactor = 111;
        Debug.Log(tMyFuncWithFactor(4));


        Debug.Log("@익명형식");
        //익명 형식( anonymouse type )을 '참조'할 때에는 반드시 var키워드를 사용해야 한다.
        //왜냐하면 표기할 타입이름이 없기 때문에 표기할 수 없어서이다.
        //var : type추론키워드, C++의 auto와 유사하다.

        var tDude = new { Name = "Bob", Age = 23 };

        Debug.Log(tDude);
        Debug.Log(tDude.Name);
        Debug.Log(tDude.Age);
    }