Я пытаюсь настроить мою систему путевых точек более гибким способом, чтобы я мог использовать производные классы для дополнительной настройки, но я застрял с тем, как установить возможность определения производного типа для него.
Iиметь такой интерфейс:
public interface ISegment
{
IWaypoint WaypointA { get; set; }
IWaypoint WaypointB { get; set; }
}
И мой сегмент имеет:
public class Segment : ISegment
{
private Waypoint _waypointA;
public IWaypoint WaypointA
{
get => _waypointA;
set => _waypointA = value;
}
private Waypoint _waypointB;
public IWaypoint WaypointB
{
get => _waypointB;
set => _waypointB = value;
}
}
Класс Waypoint:
public class Waypoint : IWaypoint
{
public Vector3 Position {get; set;} // from IWaypoint
//...custom logic ... //
}
Где Waypoint
- мой производный класс свся моя нестандартная логика.Но я не могу сделать это таким образом, потому что он не преобразует IWaypoint
в вспомогательное поле _waypoint
типа Waypoint : IWaypoint
.
Как правильно настроить это, чтобы я могприменить мой собственный класс waypoint, но все еще иметь жесткую настройку контракта, которую требует интерфейс?