C# Can';不要用| |(或)键
我想在按下空格键或回车键时运行命令C# Can';不要用| |(或)键,c#,key,keycode,C#,Key,Keycode,我想在按下空格键或回车键时运行命令 if (e.KeyCode == Keys.Space || Keys.Enter ) { //something } 这正是我所期望的,但是C#不允许我使用| |键,有什么想法吗 if (e.KeyCode == Keys.Space || e.KeyCode == Keys.Enter ) { //something } 您需要重复e.KeyCode==部分您的语法
if (e.KeyCode == Keys.Space || Keys.Enter )
{
//something
}
这正是我所期望的,但是C#
不允许我使用| |键,有什么想法吗
if (e.KeyCode == Keys.Space || e.KeyCode == Keys.Enter )
{
//something
}
您需要重复e.KeyCode==
部分您的语法错误。
请注意,C#是一种编程语言,而不是人类语言。虽然你可以说“KeyCode要么是空格,要么是回车”,但c的正确语法是“KeyCode要么等于空格,要么KeyCode等于回车”:
正确的代码是:
if (e.KeyCode == Keys.Space || e.KeyCode == Keys.Enter )
{
//something
}
编译器将If语句视为
if (<condition-1> || <condition-2>) { /*sth*/ }
if(| |){/*sth*/}
条件1或条件2
编辑:如果您想以更易于理解的方式检查多个值,请尝试扩展方法
Afaik:
System.Windows.Forms.Keys
不能作为二进制标志使用。这意味着即使是Keys.Space | Keys.Enter
也不起作用 if(e.KeyCode==Keys.Space | | | Keys.Enter)
=>if(e.KeyCode==Keys.Space | | e.KeyCode==Keys.Enter)
The | | |对条件逻辑求值,因此双方都需要求值为bool。因此,简而言之,e.KeyCode==Keys.Space
可以,但是'Keys.Enter`不可以。我建议阅读。Afaik:System.Windows.Forms.Keys不作为二进制标志。
它可以,但只适用于修改键(Ctrl
等)。contition-1或contition-1
不正确,它是contition-1或lse contition-2
,那是领导小姐。依我看,你可以删除它以排除混淆。contition-1或contition-1
是打字错误,它应该是condition-1或condition-2
。我会解决这个问题。回答得很好,并向OP解释了原因。OP为什么需要重复e.KeyCode==part
,解释在理解问题以及解决方案如何解决问题时肯定很有用。
if (<condition-1> || <condition-2>) { /*sth*/ }