不一致的可访问性: 字段类型“world”的可访问性低于字段“frmSplashScreen”。

30

我遇到了一个名为"Inconsistent accessibility"的错误:

字段类型"world"不如"frmSplashScreen"字段公开

我的代码中有一个名为frmSplashScreen的公开部分类。

还有一个名为world的公开类。

导致错误的代码行是:

private world currentWorld; 

上述代码位于 frmSplashScreen 类中。

问题的根本原因是什么?


2
你能展示更多实际的代码吗?从错误信息来看,frmSplashScreen 类并不是公共的,或者根本不是一个类... - Guffa
因为没有解释任何内容并且污染了搜索结果而被踩。 - rhavin
4个回答

77

当你没有将类“world”初始化为公共类时,也可能会发生这种情况。

你应该这样做:

public class world

而不是:

class world

1
请为该类及其任何基类执行此操作。 - amr osama
1
请注意,在C#中,默认情况下任何类都是“internal”。这就是为什么您需要指定“public”的原因。顺便说一句,回答得很好。 - toscanelli
这解决了我的问题,我一直在盯着从方法返回的字段,却没有注意到被返回的类。 - kolexinfos

25

你删掉了你的评论,但是出现了不同的错误。这就像第一个错误一样。你必须将 time2Craft 改为公共的。 - Leniel Maccaferri
好像你的类定义存在不一致的地方。为了更好地帮助你,我需要看到代码和错误信息。 - Leniel Maccaferri
等待很久是为了什么呢? :) - Leniel Maccaferri
为了在 Visual Studio 的错误窗口中消除错误。 - user1761786
虽然这可能会消除错误消息,但更多的是一个临时解决方法而不是真正的解决方案 - 另一个答案解决了主要问题。但我理解 OP 没有清楚地描述他的完整情况。 - ElDoRado1239
在我的情况下,恰恰相反:我必须从public更改为private。FTW - ulkas

0

你不能在那个语句中使用 private 访问修饰符

    Public class world

会解决这个问题


0

另外,我在使用 public 访问修饰符时遇到了这样的错误。解决方法是在属性中添加 {get;set;} 的 getter 和 setter。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接