методы расширений для абстрактных классов или интерфейсов
Есть простейший интерфейс IQuantity (величина) с enum'ом T, содержащим ед. измерения
interface IQuantity<T>
{
double Value { get; }
}
и методы расширений для конвертации единиц типа
public static double ConvertFrom(this IQuantity<Length.Units> quantity, Length.Units units)
Хотелось бы каким-то образом сделать ToString() однотипный сразу для всех IQuantity, и при этом будут использоваться те самые методы расширений.
Я попробовал сделать абстрактный класс от этого интерфейса, но там не получится использовать методы расширений для конкретных классов. Может есть способы как-то конкретизировать тип Т? Или тут поможет 8-ая версия C#, где можно прописывать дефолтные реализации методов интерфейса?