Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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
C# Can';不要用| |(或)键_C#_Key_Keycode - Fatal编程技术网

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*/ }