我有一個類中聲明是這樣的:協方差問題
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