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

C# 如何解决错误:不一致的可访问性:通用c接口的参数类型?,c#,C#,在将此代码写入我的项目时,我得到了一个错误 错误1可访问性不一致:字段类型“System.Collections.Generic.List”的可访问性不如字段“Jain_milan.addchild.m_children” 错误2可访问性不一致:参数类型“System.Collections.Generic.List”的可访问性不如方法“Jain_milan.addchild.addchildSystem.Collections.Generic.List” 在不发布全部相关代码的情况下,我将尝试

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

错误1可访问性不一致:字段类型“System.Collections.Generic.List”的可访问性不如字段“Jain_milan.addchild.m_children” 错误2可访问性不一致:参数类型“System.Collections.Generic.List”的可访问性不如方法“Jain_milan.addchild.addchildSystem.Collections.Generic.List”


在不发布全部相关代码的情况下,我将尝试一种直觉:

类Childrendata被声明为notpublic,我们可以看到变量m_children是public

Threfore公共变量不能公开不易访问的类型,在本例中为Childrendata

此外,您可能希望将m_children变成私有的,因为这通常是最佳实践

Childrendata不是公共的。那么,您希望调用addchild的人如何提供所需的参数

显而易见的修复方法是更改addchild或Childrendata的可访问性。

我猜Childrendata类是私有的或内部的,或者通过不指定可见性修饰符隐式地内部的

因为列表m_children是公共的,所以Childrendata也需要是公共的

将Childrendata更改为public,您应该会没事。

只需将方法addChildeList children或only object not list 那就这样做吧

var Listchild = childeren as List<childe>;

您不能两次使用访问修饰符。如果使用了public类,则不应使用实例public。公共部分类记录:ContentPage{List data=new List{我使用了记录类public,但没有使用list。

消息的哪部分您不明白?请仔细检查您正在使用的类上的访问修饰符。这表示公共项正在使用私有类型。请确保访问修饰符正确consistent@VJain:你能理解并解决这个问题吗?一旦引用错误重新清理,因为原始问题吞没了尖括号。你能澄清一下你在回答中提出的问题的解决方案吗?目前还不太清楚?你使用的是公共类吗?如果你使用的是公共类,那么就不要使用公共实例,只需创建没有访问修饰符的实例/对象。如果你若要创建公共对象或实例,则必须创建私有类或不带访问修饰符的类。
var Listchild = childeren as List<childe>;