Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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# VisualStudio2010说“;应为类、委托、枚举、接口或结构”;_C#_Visual Studio 2010 - Fatal编程技术网

C# VisualStudio2010说“;应为类、委托、枚举、接口或结构”;

C# VisualStudio2010说“;应为类、委托、枚举、接口或结构”;,c#,visual-studio-2010,C#,Visual Studio 2010,当试图写一些东西来检查一个数字是奇数还是偶数(C#)时,Visual Studio 2010会显示我上面提到的错误消息… 这是密码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

当试图写一些东西来检查一个数字是奇数还是偶数(C#)时,Visual Studio 2010会显示我上面提到的错误消息…
这是密码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void chk_Click(object sender, EventArgs e)
        {
            int x = Convert.ToInt32(num.Text);
            if (x%2 == 0)
            {
                chkd.Text = "Even";
            }
            else
            {
                chkd.Text = "Odd";
            }
        }
    }

    private void num_TextChanged(object sender, EventArgs e)
    {

    }
}
再添加一个
}


表单类的哪个关闭/结束命名空间是类之外的方法。根据错误消息,命名空间范围内只能显示类、委托、枚举、接口或结构

我想您的意思是将其放在
Form1
类中,因此您应该将其移动:

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void chk_Click(object sender, EventArgs e)
        {
            int x = Convert.ToInt32(num.Text);
            if (x%2 == 0)
            {
                chkd.Text = "Even";
            }
            else
            {
                chkd.Text = "Odd";
            }
        }

        private void num_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

发布实际代码而不是屏幕截图将是最有帮助的。据我统计,第29行甚至不在屏幕截图中。看起来您在
表单1.cs
末尾缺少了一个右括号(
}
)。检查文件的最后一个
}
,查看它是否有红色的波形,然后尝试添加另一个。检查编译错误的另一个好方法是双击错误,它会将您带到有问题的代码行。正如@GlorinOakenfoot所提到的,最好首先发布实际代码,而不是屏幕截图双击错误以显示它在哪一行,我认为它不在屏幕截图上-它可能在更远的地方。帮个忙,转到工具-->选项-->文本编辑器-->所有语言-->并单击“行号”复选框。然后,当一个错误指向一个特定的行号时,您可以准确地看到它在哪里。另一方面,为什么默认情况下不启用此选项?@Charles Mager,谢谢,但如何启用?您可能是对的,但在做出假设之前能够查看实际代码不是更好吗?为Visual Studio添加一个}线索,以说明错误2类型或命名空间定义,或预期的文件结尾。。。。但双击错误会突出显示“private void num_TextChanged(object sender,EventArgs e)”的“void”,它位于chk_click code的下方。。。。顺便说一句,如何发布代码?发布代码-突出显示文件的代码。复制代码(右键单击>复制)。在OP中粘贴代码(右键单击>粘贴)。保存你的答案。你是说我应该删除它?我这样做了,但后来我发现“错误1'WindowsFormsApplication2.Form1'不包含'num_TextChanged'的定义,并且找不到接受'WindowsFormsApplication2.Form1'类型的第一个参数的扩展方法'num_TextChanged'(是否缺少using指令或程序集引用?)”不,移动它,正如您的新错误所暗示的,有一些东西期望事件处理程序在
表单1
中存在。您所说的移动是什么意思?我不确定如何用另一种方式解释移动。我的意思是把它从原来的地方拿出来放到别的地方(在本例中,放在
Form1
内)。你的代码在问题中,我的(固定)代码在答案中。你看不出我改变了什么吗?解释的哪一部分不清楚?该方法应该属于该类,并且您不知何故将其移出了该范围。就这么简单。