摘要:動態委派 (Reflection and Delegate)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace DelegateConsoleApplication
{
public delegate String MyMethod(String _pram);
class Class2
{
static public void GetReturn()
{
//取得RunTime時的組件,並取得物件Type
//Assembly assem = Assembly.GetExecutingAssembly();
//typeof(DelegateConsoleApplication.Class1);
//Type tx = assem.GetType("DelegateConsoleApplication.Class1");
//只接從專案中取得Type
Type tx = typeof(DelegateConsoleApplication.Class1); //F
object ex = Activator.CreateInstance(tx); //生成物件
MethodInfo mi = tx.GetMethod("ReturnStringMethod"); //取得Class1 類別 Method名稱 需使用靜態方法
Delegate dg = Delegate.CreateDelegate(typeof(MyMethod), mi);//動態產生委派
dg.DynamicInvoke(new object[] { "abc" });//執行委派
}
}
}
今天在想了一下委派的方式 想一想能不能使用反射技術在RunTime時才指定要委派的方法 寫了以上程式