不一致的可访问性:属性类型 __ 的可访问性低于属性 ___

Cje*_*en1 4 c#

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

这是它被使用的地方:

dDatabase.FindAll(findArea.Match);
Run Code Online (Sandbox Code Playgroud)

这是 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是 databaseEntry 类的精简功能:

class databaseEntry
{
    public databaseEntry(int id, int area, string name)
    {
        rfid = id;
        currentArea = area;
        itemName = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试编译它时,我得到

“错误 CS0053:不一致的可访问性:属性类型‘System.Predicate<Database.databaseEntry>’比属性 Database.FindArea.Match 的可访问性低”

在Predicate<databaseEntry> Match函数中。

更新

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

IE

public class databaseEntry
Run Code Online (Sandbox Code Playgroud)

或者我可以改变:

public class FindArea
Run Code Online (Sandbox Code Playgroud)

到:

class FindArea
Run Code Online (Sandbox Code Playgroud)

并留下 databaseEntry

这是因为混合了两个类的不同可访问性

小智 6

您的问题是您的 databaseEntry 类不是公开的,因此对于基于 databaseEntry 类的谓词是公开的,您还需要将 databaseEntry 类设为公开。