Я написал этот код.
public interface IMusicInstrument
{
string InstrumentType(int InstrumentId);
}
public interface IGuitar<T, K> where T : GuitarBase where K : IMusicInstrument
{
string Name { get; set; }
string GetType(T t);
}
public class ElectricGuitar : GuitarBaseExtended, IGuitar<ElectricGuitar, IMusicInstrument>
{
public string Name { get; set; }
public string GetType(ElectricGuitar t)
{
return "The electric guitar is: " + t.Name;
}
}
Я думал, что, поскольку IMusicInstrument требует, чтобы я реализовал метод с именем InstrumentType, чтобы при включении его в качестве параметра в интерфейс IGuitar, реализованного в классе ElectricGuitar, я получал ошибку времени компиляции. Тем не менее, я не.
Я неправильно это реализую?
Моя цель - внедрить IMusicInstrument в общий типизированный интерфейс IGuitar, чтобы были соблюдены оба требования IMusiInstrument и IGuitar.
Есть идеи?