首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET的HashTable中添加键盘加速器有什么好处?

在.NET的HashTable中添加键盘加速器有什么好处?
EN

Stack Overflow用户
提问于 2009-11-22 07:47:49
回答 1查看 223关注 0票数 1

在很长一段时间里,我在Firefox中有以下书签:

http://www.codeguru.com/csharp/.net/net_general/keyboard/article.php/c4639

我知道,我决定阅读它,并在它应该在一段时间前实现的应用程序中实现它。然而,我看不出这种方法有什么好处……

我知道hastable背后的想法是提供一个集合,在这个集合中我们可以确定没有冲突,每个项目都是唯一的。但是,使用哈希表作为键盘加速器真的有什么大的好处吗?

例如,拥有这个有什么好处(如上面的链接所示):

代码语言:javascript
复制
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
    Accelerators accel = Accelerators.Unspecified;

    if (_accelHash.ContainsKey(AcceleratorKey(keyData))) {
        accel = (Accelerators)_accelHash[key];

        switch (accel) {
            case Accelerators.Home:
                DisplayHome();
                return true;
        }
    }

    return base.ProcessCmdKey(ref m, keyData); 
}

关于这一点:

代码语言:javascript
复制
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
    switch (keyData) {
        case Keys.Alt | Keys.H:
            DisplayHome();
            return true;
    }

    return base.ProcessCmdKey(ref m, keyData); 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-22 08:09:33

第一个示例是可配置的。您只需更改哈希表的内容,并且可以在运行时更改加速器,让用户对其进行配置。

在这里,哈希表并不完全用于唯一性约束。它的价值来自基于键(在本例中,从字面上看)快速检索数据的能力。

您使用的是.NET 2.0吗?如果是这样的话,您应该使用Dictionary,而不是哈希表,因为您得到的是强类型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1777188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档