Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何验证两个类是否分配给同一个城市?后续问题_C#_Ienumerable_Multiple Inheritance_Assign_Object Class - Fatal编程技术网

C# 如何验证两个类是否分配给同一个城市?后续问题

C# 如何验证两个类是否分配给同一个城市?后续问题,c#,ienumerable,multiple-inheritance,assign,object-class,C#,Ienumerable,Multiple Inheritance,Assign,Object Class,有三个类具有接口Train:ITrain、Line:Iline和City:ICity。一般来说,我在代码方面取得了进步,解决了测试3和测试4,但导致了新的问题 我有以下问题: 1.第19行的测试1:“序列不包含元素” 2.第38行的测试2:“序列不包含元素” 3.第90行的测试5:“预期值为2,但发现为0” 我想我错过了越来越多的任务和正确的分配之间的分配和火车线。但是,我不知道如何解决这个问题 internal class Line : ILine { private List<

有三个类具有接口Train:ITrain、Line:Iline和City:ICity。一般来说,我在代码方面取得了进步,解决了测试3和测试4,但导致了新的问题

我有以下问题: 1.第19行的测试1:“序列不包含元素” 2.第38行的测试2:“序列不包含元素” 3.第90行的测试5:“预期值为2,但发现为0”

我想我错过了越来越多的任务和正确的分配之间的分配和火车线。但是,我不知道如何解决这个问题

internal class Line : ILine
{
    private List<Station> _stations;

    internal IEnumerable<Train> _trains;

    internal Line(string name, City city)
    {
        this.Name = name;
        this.City = city;
        _stations = new List<Station>();
        _trains = new List<Train>();

    }
    public string Name
    {
        get;
    }

    public ICity City
    {
        get;
    }

    public IEnumerable<IStation> Stations
    {
        get
        {

            return _stations;
        }
    }

    public IEnumerable<ITrain> Trains
    {
        get
        {
            return _trains;
        }
    }
 }


第三个测试是检查列车和线路是否属于同一个城市。

我假设以下是指:当列车分配到1号线,然后分配更改到2号线时,2号线必须与1号线位于同一个城市

这可以通过以下方式解决:

if (!(Assignment.City == l.City))  throw new ArgumentException(...);
由于似乎也允许空值,因此需要进行更完整的检查

if (!(Assignment == null || l == null || Assignment.City == l.City)) throw...
请注意,这将允许通过以下方式将火车传送到另一个城市:

train1.AssignTo(lineInCity1);
train1.AssignTo(null);
train1.AssignTo(lineInCity2);

这些要求没有规定是否允许这样做。

那么问题出在哪里?是否有一项测试失败?请注意,您可以通过您的问题添加更多详细信息。以下所有测试(从测试3开始)均失败,因为我无法验证列车和线路是否属于同一城市。我要经过这个城市去他要去的地方。你说的“火车属于一个城市”是什么意思?火车类中没有提及城市。火车属于特定的线路,然后我应该验证火车和线路是否分配给同一个城市。我不知道怎么走,因为火车和城市的关系总是通过火车->线路->城市,这怎么可能失败呢?或者这意味着,每当列车被分配到1号线,然后任务更改为2号线时,2号线必须与1号线位于同一个城市?谢谢,我会看一看。它有效,谢谢。在测试4中,当将一列火车分配到一条空线路时,我猜远程传送会被处理。删除了它的分配()当我通过测试3和4时,出现了新的问题。1.第19行的测试1和第38行的测试2:“序列不包含任何元素”2。第90行的测试5:“预期值为2,但发现为0”
if (!(Assignment.City == l.City))  throw new ArgumentException(...);
if (!(Assignment == null || l == null || Assignment.City == l.City)) throw...
train1.AssignTo(lineInCity1);
train1.AssignTo(null);
train1.AssignTo(lineInCity2);