可访问性不一致:属性类型__比属性___更难访问

时间:2015-01-04 18:17:56

标签: c#

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

这是使用它的地方:

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;
        }
    }
}

这是databaseEntry类的精简功能:

class databaseEntry
{
    public databaseEntry(int id, int area, string name)
    {
        rfid = id;
        currentArea = area;
        itemName = name;
    }
}

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

  

&#34;错误CS0053:可访问性不一致:属性类型   &#39;&System.Predicate LT; Database.databaseEntry&GT;&#39;不太容易接近   属性Database.FindArea.Match&#34;

Predicate<databaseEntry> Match函数中。

更新

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

public class databaseEntry

或者我本可以改变:

public class FindArea

为:

class FindArea

并单独保留databaseEntry

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

1 个答案:

答案 0 :(得分:3)

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