可访问性不一致:字段类型“世界”比字段“frmSplashScreen”更难访问

Posted

技术标签:

【中文标题】可访问性不一致:字段类型“世界”比字段“frmSplashScreen”更难访问【英文标题】:Inconsistent accessibility: field type 'world' is less accessible than field 'frmSplashScreen 【发布时间】:2012-10-11 00:23:04 【问题描述】:

我有这个错误,称为不一致的可访问性:

字段类型“world”比字段“frmSplashScreen”更难访问

在我的代码中有一个名为frmSplashScreen的公共部分类

还有一个名为world的公共类

导致错误的行是:

private world currentWorld; 

以上行在frmSplashScreen类中

导致问题的原因是什么?

【问题讨论】:

你能展示更多的实际代码吗?从错误消息来看,frmSplashScreen 类实际上不是公共的,或者实际上不是一个类... 因未解释任何内容并污染搜索结果而被否决 【参考方案1】:

发生这种情况通常是因为您的字段是private。你必须把它改成public

public world currentWorld;

有关更多信息,请查看此处:Restrictions on Using Accessibility Levels (C# Reference)

【讨论】:

...您删除了您的评论,但出现了另一个错误。这就像第一个错误。您必须将time2Craft 更改为公开。 看起来你的类定义不一致。为了帮助您更多,我需要查看代码和错误消息。 等了很久干什么? :) 让错误在 Visual Studio 的错误窗口中消失 虽然这可能会删除错误消息,但它更像是一个修补程序而不是真正的解决方案 - 另一个答案解决了主要问题。但我知道 OP 并没有真正清楚地描述他的全部情况。【参考方案2】:

当您没有将您的“世界”类初始化为公共时,也会发生这种情况

你应该这样做:

public class world

而不是:

class world

【讨论】:

对类及其任何基类执行此操作 考虑到任何类在 C# 中默认是“内部的”。这就是您需要指定“公共”的原因。顺便说一句,答案很好。 这解决了我的问题,我正忙着盯着我从方法返回的字段,没有考虑到正在返回的类。【参考方案3】:

另外,public 访问修饰符出现了这样的错误。解决方案是将get;set; getter 和 setter 添加到属性中

【讨论】:

【参考方案4】:

您不能在该语句中使用private 访问说明符

    Public class world

会解决这个问题

【讨论】:

以上是关于可访问性不一致:字段类型“世界”比字段“frmSplashScreen”更难访问的主要内容,如果未能解决你的问题,请参考以下文章

可访问性不一致:参数类型比方法更难访问

错误 1 ​​可访问性不一致:返回类型比方法更难访问

可访问性不一致:属性类型错误

c#错误不一致的可访问性:参数类型'HRDMSV1.User'比方法更难访问

与抽象类的可访问性不一致

如何避免类和方法的可访问性不一致导致的编译错误?