2013-06-23 2 views
1

많은 if 문 (C#)을 사용하지 않고 다른 기능을로드하려고합니다. 나는 목록을 사용하려했지만 Unity에게 Action을 사용하여 예외를 던졌습니다. 여기에 ActionUnity3D의리스트 또는 배열에 함수 저장

var methods = new Dictionary<string, Action>() 
      { 
       {"method1",() => method1() }, 
       {"method2",() => method2() } 
      }; 

methods["method2"](); 

같은 문제를 내가 무엇을 그리워

using System.Collections.Generic; 

수입 : 내가 여기에 C#을위한 좋은 해결책을 발견?

답변

1

Dictionary의 경우 System.Collections.Generic 외에도 Action의 경우 System을 가져와야합니다.

파일 상단에 using System;을 추가하십시오.

일반적으로 MSDN에서 해당 유형의 전체 네임 스페이스를 확인하십시오. 이 경우 Action delegate의 MSDN 페이지는 네임 스페이스가 "시스템"임을 나타냅니다. 따라서 using System; 지시문을 코드 상단에 추가하거나 코드에 전체 네임 스페이스를 포함시켜야합니다. 따라서 예를 들어, using 지시어없이 코드를 다시 작성할 수 있습니다.

var methods = new System.Collections.Generic.Dictionary<string, System.Action>() 
     { 
      {"method1",() => method1() }, 
      {"method2",() => method2() } 
     }; 

methods["method2"]();