C#开发的OpenRA使用自定义字典的比较函数

本文介绍了在C#开发OpenRA过程中,如何为自定义字典创建比较函数以确保键的唯一性。通过一个Box类的示例,详细解释了如何根据对象的实际属性(如高度、长度和宽度)来定义相等性,而不是依赖默认的HASH值。同时提到了Func<T,TResult>委托在OpenRA中的使用。" 53943893,5657163,自定义Button实现百分比宽度,"['布局', 'Android']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#开发的OpenRA使用自定义字典的比较函数

字典是一个常用的数据结构,

因为它采用键值对的方式来保存数据,

这样非常方便程序里进行数据一对一的映射。

比如通过文件名称查找到文件对象,又者通过socket对象找到缓冲区对象。

由于字典是采用HASH算法,所以它的查找时间是非常快,并且索引类型也没有太多限制,

可以适用的类型就普通数据的范围就大得多了。

字典由于键的唯一性,如果自定义的类作为键,

又是怎么样比较才确保唯一性呢?

默认的情况可能是采用对象的HASH值,但是这种情况在普通的对象是可以使用的。

但是对于要有物理上意义的对象,就不太适用了。

比如一个盒子的大小,不能通过对象的HASH值来认为它们是相等的,因为盒子的大小是通过长宽高来决定。

对于一个初步使用字典的开发人员来说,要自己从头写一个比较器,

这是比较困难的,如果有一个模板,再从这个模板上进行扩展,

就会快很多,并且不用出错。

后面提供的例子,就是这样的作用。

另Func<T,TResult> 委托,也是在OpenRA里常用,在这里也一并了解它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值