C#下捣腾一下Hashtable和delegate

本文介绍了一个简单的示例,展示了如何在Hashtable中存储Delegate,并通过一个结构体进行操作。该示例包括定义Delegate类型、创建Hashtable实例、添加带有Delegate的结构体元素到Hashtable,以及从Hashtable中读取并调用Delegate。

当个小例子记录一下。

 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下测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值