我正在创建一个数据库,我需要为数据库索引所有与名称匹配的条目。
这是使用它的地方:
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
这是因为混合了两个类的不同可访问性
答案 0 :(得分:3)
您的问题是您的databaseEntry类不是公共的,因此对于基于databaseEntry类的谓词是公共的,您还需要将databaseEntry类设置为public。