当个小例子记录一下。
Hashtable用来表示一组key/value结构的容器,其结构中Key用来快速查找。
delegate委托,委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法。
这里的例子是在Hashtable里保存delegate。
照例声明一下:
private Hashtable ht;
public delegate void dgtest(string str);
public struct objtest
...{
public string act;
public dgtest fun;
};
写个简单的函数:
private void shmsg(string str)
...{
MessageBox.Show(str);
}
对Hashtable、struct、delegate基本的练习测试
objtest objt1, objt2;
ht = new Hashtable();
dgtest dgt = new dgtest(shmsg);
objt1.act = "object delegate test 1";
objt1.fun = new dgtest(shmsg);
dgt("Delegate test"); //测试delegate工作
objt1.fun(objt1.act); //测试在结构体中的delegate工作
ht.Add( "123456", objt1 ); //在Hashtable中增加key为123456的value
objt2 = (objtest)(ht["123456"]); //把key为123456的value强制转换成objtest结构体
objt2.act = "object delegate test 2";
objt2.fun(objt2.act); //测试从Hashtable中读取的delegate工作
objt1.fun(objt1.act);
极其简单的例子,在WinCE5.0,CF2.0下测试通过。
本文介绍了一个简单的示例,展示了如何在Hashtable中存储Delegate,并通过一个结构体进行操作。该示例包括定义Delegate类型、创建Hashtable实例、添加带有Delegate的结构体元素到Hashtable,以及从Hashtable中读取并调用Delegate。

493

被折叠的 条评论
为什么被折叠?



