2013-02-24 7 views
1

내가 텍스트 상자에 이름을 입력하고 버튼을 클릭하여 함수를 호출 할 수있는 방법을 찾기 위해 노력하고 있어요에 문자열을 사용하여 함수를 호출, 나는 417의 기능을 가지고 있고 어떤 변수를 고려하지 않는런타임

예를 들어 내가 텍스트 상자

listproducts 

를 입력하고 버튼을 누른 다음 listproducts()가 호출되는 것이다

을 클릭합니다.

선택 사례 또는 if 문을 사용하지 않고 이러한 작업을 수행 할 수 있습니까? 또는 함수에 문자열 이름을 할당하고 해당 이름으로 호출 할 수 있습니까?

+1

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야한다"는 것을 참조하십시오. –

답변

4

리플렉션을 사용해야합니다. 호출하려는 함수가 Foo 클래스의 모든 정적 메서드라고 가정하면 다음과 같이 할 수 있습니다.

Dim functionName as String = "listproducts" 
Dim fooType As System.Type = GetType(Foo) 
Dim Method As System.MethodInfo = fooType.GetMethod(functionName) 
Method.Invoke(Nothing, Nothing)