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