我正在创建一个数据库,我需要为与名称匹配的所有条目索引数据库。
这是它被使用的地方:
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
这是因为混合了两个类的不同可访问性