Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不一致的可访问性:属性类型_u的可访问性不如属性____C# - Fatal编程技术网

C# 不一致的可访问性:属性类型_u的可访问性不如属性___

C# 不一致的可访问性:属性类型_u的可访问性不如属性___,c#,C#,我正在创建一个数据库,需要为数据库中与名称匹配的所有条目编制索引 这就是它被使用的地方: dDatabase.FindAll(findArea.Match); 这是findArea类: public class FindArea { string m_Name; public FindArea(string name) { m_Name = name; } public Predicate<databaseEntry> Ma

我正在创建一个数据库,需要为数据库中与名称匹配的所有条目编制索引

这就是它被使用的地方:

dDatabase.FindAll(findArea.Match);
这是findArea类:

public class FindArea
{
    string m_Name;
    public FindArea(string name)
    {
        m_Name = name;
    }

    public Predicate<databaseEntry> Match
    {
        get { return NameMatch; }
    }

    private bool NameMatch(databaseEntry deTemp)
    {
        if(deTemp.itemName == m_Name)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
我的问题是当我试图编译它时

错误CS0053:不一致的可访问性:属性类型 “System.Predicate”的可访问性不如 属性数据库.FindArea.Match“

谓词匹配
函数中

更新 所以感谢所有的帮助,我需要将databaseEntry类的访问权限设置为public

i、 e

或者我可以改变一下:

public class FindArea
致:

不要去管数据库条目


这是由于两个类混合了不同的可访问性造成的。您的问题是databaseEntry类不是公共的,因此,要使基于databaseEntry类的谓词成为公共的,您还需要将databaseEntry类公开。

有什么不清楚的?您的谓词是
public
,但返回的是内部的
databaseEntry
。它抱怨类型参数实际上是
databaseEntry
@jeroenvanevel:非嵌套受保护的内部类?问题的可能重复之处在于
类databaseEntry
不是公共的,这意味着,如果要公开
公共谓词匹配
,则导出需要了解
数据库条目
public class databaseEntry
public class FindArea
class FindArea