如何解决错误:不一致的可访问性:通用c#接口的参数类型?

在将此代码写入我的项目时,我收到了错误

错误1可访问性不一致:字段类型'System.Collections.Generic.List'比字段'Jain_milan.addchild.m_children'更难访问
错误2可访问性不一致:参数类型'System.Collections.Generic.List'比方法'Jain_milan.addchild.addchild(System.Collections.Generic.List)'更难访问

 namespace Jain_milan { public partial class addchild : Form { List 

如果不发布您的完整相关代码,我会试着预感:

Childrendata被声明为not-public和(我们可以看到)变量m_children是public

因此,公共变量无法公开不太容易访问的类型,在本例中为Childrendata

此外,您可能想要的是将m_children变为私有,这通常是最佳做法

我的猜测是Childrendata类是private (或internal ,或通过不指定可见性修饰符隐式internal

由于List m_children是公开的,因此Childrendata需要公开。

Childrendata更改为public ,你应该没事。

Childrendata不公开。 那么,您是否期望有人调用addchild能够提供所需的参数?

明显的修复方法是更改addchildChildrendata的可访问性。

只需将方法addChilde(Listchilderen)或仅对象不列表然后执行此操作

 var Listchild = childeren as List; 

您不能两次使用访问修饰符。 如果您使用公共类,则不应使用实例public。 public partial class Record:ContentPage {List datas = new List(){我使用的是记录类public但不是list。