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

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

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

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

还有一个名为world的公共类

导致错误的行是:

private world currentWorld; 

以上行在frmSplashScreen类中

导致问题的原因是什么?

【问题讨论】:

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

标签: c# field restriction


【解决方案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
    

    会解决这个问题

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2014-06-25
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多