C# 错误“名称空间不能直接包含字段或方法等成员”是什么意思?

C# 错误“名称空间不能直接包含字段或方法等成员”是什么意思?,c#,winforms,C#,Winforms,我在C windows窗体应用程序中添加了以下代码,以便在单击关闭按钮时显示消息框。。但它给了我以下的错误 错误CS0116命名空间不能直接包含以下成员 字段或方法ebay源C:\Users\Supun\Documents\Visual Studio 2015\Projects\ebay source\ebay source\Form1.cs 107激活 这是我使用的代码 private void Form1_FormClosing(object sender, FormClosingEvent

我在C windows窗体应用程序中添加了以下代码,以便在单击关闭按钮时显示消息框。。但它给了我以下的错误


错误CS0116命名空间不能直接包含以下成员 字段或方法ebay源C:\Users\Supun\Documents\Visual Studio 2015\Projects\ebay source\ebay source\Form1.cs 107激活

这是我使用的代码

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    DialogResult dialog = dialog = MessageBox.Show(
      "Do you really want to close the program?", 
      "SomeTitle", 
       MessageBoxButtons.YesNo);

    if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}

我需要做些什么来修复它呢?

我想你已经在类之外声明了这个函数了

而不是

namespace Something
{
    class MyClass
    {
        private void Method()
        {
        }
    }
}

检查您的功能如下所示。我认为某些变量或函数直接位于名称空间之下。把他们留在教室里

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

        private void button2_Click(object sender, EventArgs e)
        {
             DialogResult dialog = dialog = MessageBox.Show("Do you really want to close the program?", "SomeTitle", MessageBoxButtons.YesNo);
             if (dialog == DialogResult.No)
             {
                 e.Cancel = true;
             }
        }
    }
}

不要写对话框两次,使用下面的简单代码,你会没事的

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{

if (MessageBox.Show("Do you really want to exit??, "Exit", MessageBoxButtons.YesNo)== DialogResult.No)
 {
    e.Cancel = true;
 }
}

您是否可以与namespace共享完整的类代码,看起来您是在namespace下直接声明一些变量,而不是在classA下。namespace不能直接包含字段或方法等成员……这是一条相当清楚的消息。不能将字段属性或方法直接放入命名空间中。他们一定在一个班级里。检查方法的放置位置,并将其移动到表单class.PS中的适当位置。你知道你可以并且得到很多以前的点击告诉你如何解决它,而不必再问同样的问题。我建议你阅读,如果你不清楚如何构造一个C程序。我修复了它。但是当点击关闭按钮时,消息永远不会出现!最大的DOH!一瞬间,就像几年+为了改善我的愚蠢,欢迎来到堆栈溢出。错误的真正原因如接受的答案和其他一些回答和评论所述。请阅读这些回复和评论,因为它也将帮助您理解原因。我曾经犯过类似的错误。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{

if (MessageBox.Show("Do you really want to exit??, "Exit", MessageBoxButtons.YesNo)== DialogResult.No)
 {
    e.Cancel = true;
 }
}