Я застрял в понимании - как получить доступ и использовать (или даже возможно ли использовать) виртуальный метод базового класса.
Итак, код: Базовый класс:
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, но есть ли способ использовать его в шаблоне хранилища?