首页 > 解决方案 > 错误 CS0122:“XXX”由于其保护级别 (CS0122) 而无法访问(测试)

问题描述

这是我的项目。我想在 program.cs 文件中调用 delete_created_pa​​ge 文件代码,但是我有一些错误。

附上我的项目图片。 https://plus.google.com/u/0/photos/photo/103928744837695537992/6652781093994177394

'DeleteCreatedPage.MainDeletePage()' 由于其保护级别而无法访问

请帮帮我。我是 C# 的初学者,我正在使用 monodevelop 和 usng Ubuntu 18.04 OS

这是 Delete_created_pa​​ge.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();
        }
    }
}

标签: c#class

解决方案


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

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

第二个问题是它是static,这意味着它不是通过实例化的对象访问的,而是直接通过类调用的,就像这样DeleteCreatedPage.MainDeletePage()。如果您希望该方法与特定DeleteCreatedPage对象的类成员一起使用,请删除static. 如果您希望该方法对每个对象使用相同的值,请将 static 保留在那里。

因此,您有两种选择来解决此特定问题。

将方法定义更改为此

public void MainDeletePage()

或者改变你调用它的方式(同时仍然添加public到方法定义中)

DeleteCreatedPage.MainDeletePage()

推荐阅读