可访问性不一致:字段类型“世界”比字段“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”更难访问的主要内容,如果未能解决你的问题,请参考以下文章