C# 错误CS0122:“XXX”由于其保护级别(CS0122)(测试)而不可访问

C# 错误CS0122:“XXX”由于其保护级别(CS0122)(测试)而不可访问,c#,class,C#,Class,这是我的项目。我想调用program.cs文件中的delete_created_页面文件代码,但我有一些错误 附上图片我的项目。 “DeleteCreatedPage.MainDeletePage”由于其保护级别而不可访问 请帮帮我。我是C语言的初学者,我正在使用monodevelop和USNGubuntu18.04操作系统 这是Delete_创建的_page.cs文件 namespace DeletePage { public class DeleteCreatedPage

这是我的项目。我想调用program.cs文件中的delete_created_页面文件代码,但我有一些错误

附上图片我的项目。

“DeleteCreatedPage.MainDeletePage”由于其保护级别而不可访问

请帮帮我。我是C语言的初学者,我正在使用monodevelop和USNGubuntu18.04操作系统

这是Delete_创建的_page.cs文件

namespace DeletePage
{
    public class DeleteCreatedPage
    {
        static void MainDeletePage()
        {
            //Initialize TestName and ToolName. 
            string testName = "delete_page";
            string toolName = "editor";
            // Calling necessary classes
       }
    }
}
这是Program.cs文件

namespace ProgramList
{
    public class MainClass
    {
        static void Main(string[] args)
        {
            DeletePage.DeleteCreatedPage del = new DeletePage.DeleteCreatedPage();
            del.MainDeletePage();
        }
    }
}

如果您试图调用MainDeletePage,则必须将其标记为public,以便其他类可以看到它。因此,请尝试公共静态void MainDeletePage,而不是静态void MainDeletePage。默认情况下,如果没有显式定义方法的作用域,C默认为方法的私有作用域。私有方法只能由定义它们的类访问。

这是因为MainPageDelete不是公共的,您需要这样编写它。类成员的默认可访问性修饰符是私有的,因此不能在类之外访问它

public static void MainDeletePage()
    {
        //Initialize TestName and ToolName. 
        string testName = "delete_page";
        string toolName = "editor";
        // Calling necessary classes
   }

这里有几个问题叠加在一起

第一个是,如果没有明确定义,该方法将被设置为最严格的限制,例如内部或私有。你希望它是公开的,所以一定要包括这一点

第二个问题是它是静态的,这意味着它不是通过实例化对象访问的,而是通过类直接调用的,比如DeleteCreatedPage.MainDeletePage。如果希望该方法使用特定DeleteCreatedPage对象的类成员,请删除static。如果希望该方法对每个对象使用相同的值,请将static保持在启用状态

所以你有两个选择来解决这个问题

将方法定义更改为

public void MainDeletePage()
或者在仍然向方法定义添加public的情况下更改对此函数的调用方式

DeleteCreatedPage.MainDeletePage()

现在它可以工作了,当我在delete_创建的页面文件中写这篇文章时

public void MainDeletePage()
在program.cs文件中称之为这个方法

DeletePage.DeleteCreatedPage del = new DeleteCreatedPage();    del.MainDeletePage(); 

不,这对我没有帮助嗯,这正是那个错误的意思。我的文件/delete\u created\u page/和program.cs文件是不同的文件夹,当我在属性文件夹中调用一个类时,它工作正常。但是我的文件在properties/content\u editor/editor文件夹中实际上,类成员默认为private,类默认为internal@凯尔注意到并改正了。谢谢。您仍然需要使用第二个解决方案将静态方法公开。这是真的,我将进行编辑以使clearI更改,根据您的要求,、命名空间DeletePage{public class DeleteCreatedPage{public void MainDeletePage{在程序文件.DeleteCreatedPage.MainDeletePage中;但我仍然有一个错误..请参阅atached文件。现在它可以工作了,当我编写这个文件时。public void MainDeletePage,在program.cs文件中称它为this.DeletePage.DeleteCreatedPage del=new DeleteCreatedPage;del.MainDeletePage;非常感谢大家!添加一个公共ac访问静态void mainletepage以使其公开静态void mainletepage