我正在创建一个数据库,我需要为数据库中与名称匹配的所有条目建立索引。
这是使用它的地方:
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;
}
}
我的问题是,当我尝试编译它时,我得到了
"error CS0053: Inconsistent accessibility: property type 'System.Predicate<Database.databaseEntry>' is less accessible than property Database.FindArea.Match"
在Predicate<databaseEntry> Match
功能。
更新
所以感谢所有的帮助,我需要将 databaseEntry 类的访问权限设置为 public,
即
public class databaseEntry
或者我可以改变:
public class FindArea
到:
class FindArea
并单独保留数据库条目
这是由于混合了两个类的不同可访问性而发生的
最佳答案
您的问题是您的 databaseEntry 类不是公开的,因此要使基于 databaseEntry 类的谓词公开,您还需要将 databaseEntry 类设为公开。
关于c# - 可访问性不一致 : property type __ is less accessible than property ___,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768780/