I have next code:
public interface IOrder
{
}
public interface IManagedOrder<out T> where T : IOrder
{
T Order { get; }
}
public class ManagedPrivateExchange
{
public void PlaceOrder(IManagedOrder<IOrder> mOrder)
{
}
}
public class ManagedOrder<T> : IManagedOrder<T> where T : IOrder
{
public T Order { get; }
public ManagedPrivateExchange Exchange { get; set; }
public void Place()
{
Exchange.PlaceOrder(this)//<-----here is ERROR #1
}
}
Error details:
CS1503 Argument 1: cannot convert from 'ManagedOrder' to 'IManagedOrder' Trading.Core
QUESTION:
- Is it possible to assign this
ManagedOrder<T>
(where T is IOrder) toIManagedOrder<IOrder>
. What I need to change to achieve my goal?