У меня есть класс, объявленный так:
internal private abstract class BoxGroup<TS> : IBoxGroup where TS : SavedState
В этом классе у меня есть этот метод:
protected virtual TS saveState() {
return new SavedState(Width, Height);
}
Я думал, что это будет правильно, но я вижу красную линию под оператором return, и Решарпер говорит, что new SavedState(Width, Height)
нельзя преобразовать в TS
. Я не знаю почему. Я думал, что TS
может быть любым классом, который расширяет SavedState
, но также и SavedState
сам по себе. Что я могу сделать, чтобы исправить это?
Состояние сохраненного класса очень просто, оно выглядит так:
private class SavedState {
internal float Width { get; private set; }
internal float Height { get; private set; }
public SavedState(float width, float height) {
Width = width;
Height = height;
}
}