一·委托
1.什么是委托?
(1) 委托是一个对象把处理的事物,交给另一个对象的处理过程。
(2) eg:
string name : string是name的值类型
委托是一种方法的类型,将方法作为另一个方法的参数进行传播,可以通过委托实例调用方法。
2.定义委托:
delegate void Test(string name) (只是在定义普通函数前多了一个 delegate)
Test就是一个委托类,通过创建对象,代理其它对象的方法
3.异步启动:
class Program
{
static bool chuli(int number)
{
for(int i=2;i<number;i++)
if(number/i==0)
return false;
return true;
}
static void huidiao(IAsyncResult result)
{
//封装对异步操作的结果
AsyncResult r = (AsyncResult)result;
object o = result.AsyncState;
D d1 = (D)r.AsyncDelegate;
bool b = d1.EndInvoke(result);
if (b)
Console.WriteLine("{0}是质数", o);
else
Console.WriteLine("{0},不是质数", o);
}
//定义委托类型
delegate bool D(int number);
static void Main(string[] args)
{
//创建委托对象,并关联方法
D d = new D(chuli);
//关联回调的方法
AsyncCallback callback=new AsyncCallback(huidiao);
//1·异步启动处理后,自动调用callback委托方法
//2·把d和n封装成AsyncResult,传递给callback委托的方法
int n=17;
d.BeginInvoke(n, callback, n);
for (int i = 0; i < 10; i++)
Console.WriteLine("主线程:{0}", i);
}
}
}
3.多播委托: 一个委托对应多个方法
二·事件
1.声明事件前,先声明委托类型:
public delagate void action(string name);
2.基于上面的委托,定义事件——event
public event action play;
(上面定义了action这个委托,play这个事件,该事件的生成会调用委托)
3.触发事件
未完待续。。。。。。。