我有一个类中声明是这样的:协方差问题
internal private abstract class BoxGroup<TS> : IBoxGroup where TS : SavedState
那堂课我有这样的方法:
protected virtual TS saveState() {
return new SavedState(Width, Height);
}
我认为这将是正确的,但我看到在红线return语句和Resharper说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;
}
}
明白了......我很愚蠢。 – drasto 2011-01-05 02:13:06