Доступ к виртуальному методу из абстрактного класса с использованием шаблона хранилища - PullRequest
0 голосов
/ 23 декабря 2019

Я застрял в понимании - как получить доступ и использовать (или даже возможно ли использовать) виртуальный метод базового класса.

Итак, код: Базовый класс:

public abstract class Vehicle
{
    public string VehicleIdentificationNumber { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
    public abstract string DisplayName { get; }

    public virtual bool HasAnAmazingColor(){         
    }
}

Шаблон репозитория:

public class VehicleRepository : IVehicleRepository, ICollection
{
    private readonly List<Vehicle> _vehicles;

    public int Count => _vehicles.Count;

    public object SyncRoot => ((ICollection)_vehicles).SyncRoot;

    public bool IsSynchronized => ((ICollection)_vehicles).IsSynchronized;

    public void CopyTo(Array array, int index)
    {
        ((ICollection)_vehicles).CopyTo(array, index);
    }

    public IEnumerator GetEnumerator()
    {
        return ((ICollection)_vehicles).GetEnumerator();
    }

    public VehicleRepository(List<Vehicle> aVehicles)
    {
        _vehicles = aVehicles;
    }

Затем int unittest Я пытаюсь получить виртуальный метод, но знаю, что я чего-то не понимаю, но не могу понять, что, как я могу использовать метод без переопределенияэто?

  [TestClass()]
public class VehicleRepositoryTests
{

    private VehicleRepository vehicleList = new VehicleRepository(new List<Vehicle>());

    [TestMethod()]
       public void HasAmazingColor()
    {
        //arrange

        //act
        vehicleList.??? -- I'm missing something 

        //assert           
    }

Я могу получить доступ к виртуальному методу в любом производном классе, который реализует Vehicle, но есть ли способ использовать его в шаблоне хранилища?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...