Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在.NET的哈希表中添加键盘加速器的好处是什么?_.net_Winforms_Keyboard Shortcuts_Hashtable - Fatal编程技术网

什么';在.NET的哈希表中添加键盘加速器的好处是什么?

什么';在.NET的哈希表中添加键盘加速器的好处是什么?,.net,winforms,keyboard-shortcuts,hashtable,.net,Winforms,Keyboard Shortcuts,Hashtable,很长一段时间以来,我在Firefox中拥有以下书签: 我知道,我决定阅读它,并在应用程序中实现它,它应该在不久前实现。然而,我看不出这种方法有什么好处 我知道hastable背后的想法是提供一个集合,我们可以确保没有冲突,每个项目都是唯一的。但是,使用哈希表作为键盘加速器真的有什么好处吗 例如,拥有此功能有什么好处(如上面的链接所示): 在这方面: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {

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

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

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

例如,拥有此功能有什么好处(如上面的链接所示):

在这方面:

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); 
}

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

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


您正在使用.NET2.0吗?如果是这样,您应该使用,而不是哈希表,因为您可以得到强类型。

第一个示例使用索引器中的
键。你的意思是
keyData
?什么是
Acceleratoryy
方法?可能是keyData,我只是从文章中复制/粘贴的。AcceleratorWorkey方法和其他所有内容都在本文中。这是一个简短的阅读。我仍然无法看到/理解基于密钥检索某些内容的好处,因为我可以直接在案例中进行检索。我认为这样做的唯一原因是代码组织,并使其更干净,而不是别的。但只有当我有很多键盘加速器时,这才是真正的好处。如果它们只是少数,我认为这不值得。那么在运行时更改加速器的能力呢?
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); 
}