2011-09-09 36 views
6

Tôi có một đối tượng với một số phương thức và tôi muốn gọi một phương thức chỉ sử dụng tên phương thức làm chuỗi.Cách gọi phương thức bằng tên của nó?

object obj; 
obj.method(); 
+1

Biết tôi biết bạn muốn làm gì. Nhưng câu hỏi của bạn thực sự khó hiểu ... Hãy thử chỉnh sửa câu hỏi của bạn. –

Trả lời

8

Cho một phương pháp methodname với chữ ký void MethodName(int num), nó sẽ được thực hiện một cái gì đó như:

MethodInfo method = obj.GetType().GetMethod("MethodName", 
     BindingFlags.Public|BindingFlags.Instance) 
    method.Invoke(obj, 4) // void method 

Hope this helps.

+0

phương pháp void của nó. – Amged

2

Ngoài phản ánh, bạn cũng có thể muốn xem số dynamic yêu cầu; đó là trễ (tức là tại thời gian chạy như trái ngược với thời gian biên dịch) công văn của các lời gọi phương thức.

0
object obj; 
var dyn = (dynamic) obj; 
dyn.method(); 
+2

Có, nhưng ký hiệu 'phương thức' vẫn phải xuất hiện dưới dạng chữ trong mã. –

Các vấn đề liên quan