// 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); }
// 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); }