Как уже упоминалось в комментариях, вы не можете.
Что вы можете сделать, это:
public inteface IZonePrice
{
// codes here
}
public interface IRegionalZonePrice : IZonePrice
{
// codes here
}
public interface INationalZonePrice : IZonePrice
{
// codes here
}
public T GetZonePrices<T>() where T :IZonePrice, new()
{
// codes here
}
Тогда это будет работать:
public class MarketRegionalZonePrice : IRegionalZonePrice
{
// properties here
}
...
var result = GetZonePrices<MarketRegionalZonePrice>()
при необходимости вы можете проверить тип T
с помощью T is IRegionalZonePrice
или T is INationalZonePrice
Много ли между этими интерфейсами различий? Потому что мне кажется, что вы слишком усложнили свою бизнес-модель / logi c?
Возможно, вам просто необходим интерфейс IZonePrice
, и тогда ваша реализация будет public class RegionalZonePrice : IZonePrice
и public class NationalZonePrice : IZonePrice
с соответствующими различными значениями для каждой зоны.