【发布时间】:2010-06-28 18:40:34
【问题描述】:
我知道发生了什么以及为什么它会抛出错误(它没有找到 GetBrokenRules 方法,因为它的列表)但我在这里发布这个问题的原因是要求更好的设计,有人可以在这里指导我吗?
我正在学习设施类(列表..../Building/Floor)
错误:
错误 3“System.Collections.Generic.List”不包含“GetBrokenRules”的定义,并且找不到接受“System.Collections.Generic.List”类型的第一个参数的扩展方法“GetBrokenRules”(是您缺少 using 指令或程序集引用?)
错误 >>> else if (Campus.GetBrokenRules().Count > 0)
有没有更好的方法来设计我的 GetBrokenRules() ?
ICampus、IBuilding、IFloor 由以下组成
public interface ICampus
{
List<BrokenBusinessRule> GetBrokenRules();
int Id { get; }
string Name { get; }
}
public interface IFacilities
{
List<BrokenBusinessRule> GetBrokenRules();
List<ICampus> Campus { get; }
List<IBuilding> Building { get; }
List<IFloor> Floor { get; }
}
public class Facilities : IFacilities
{
private List<ICampus> _campus;
private List<IBuilding> _building;
private List<IFloor> _floor;
public List<ICampus> Campus
{
get { return _campus; }
}
public List<IBuilding> Building
{
get { return _building; }
}
public List<IFloor> Floor
{
get { return _floor; }
}
public Facilities(List<ICampus> campus, List<IBuilding> building, List<IFloor> floor)
{
_campus = campus;
_building = building;
_floor = floor;
}
public List<BrokenBusinessRule> GetBrokenRules()
{
List<BrokenBusinessRule> brokenRules = new List<BrokenBusinessRule>();
if (Campus == null)
brokenRules.Add(new BrokenBusinessRule("Facility Campus", "Must have at least one Campus"));
else if (Campus.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Campus.GetBrokenRules());
}
if (Building == null)
brokenRules.Add(new BrokenBusinessRule("Facility Building", "Must have at least one Building"));
else if (Building.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Building.GetBrokenRules());
}
if (Floor == null)
brokenRules.Add(new BrokenBusinessRule("Facility Floor", "Must have at least one Floor"));
else if (Floor.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Floor.GetBrokenRules());
}
}
}
【问题讨论】: