我還沒有找到我的用例在現有的問題,所以我在這裏。 我有了泛型這樣一個抽象類:抽象的泛型和摘要列表
public abstract class aParameter<T>
{
private T _parameter;
public T Parameter
{
get { return _parameter;}
}
...
}
然後,我有我的「類型」類像這樣:
public class IntParameter : aParameter<Int32>
{
public IntParameter(Int32 value)
{
_parameter = value;
}
}
public class TextParameter : aParameter<String>
{
public TextParameter(String value)
{
_parameter = value;
}
}
現在在我的應用程序代碼中,我想創建一個字典與抽象泛型類沒有指定泛型類型。就像這樣:
...
private Dictionary<Int32, aParameter> _paramDict = new Dictionary<Int32, aParameter>();
...
在以前的版本中,我使用的接口,而不是抽象類aParameter
但我想將其遷移到抽象,這樣我可以簡化我的「類型」類,而不是重複相同的代碼爲每個「類型」。
這裏有什麼想法嗎?
編輯
我忘了提,這將是是指公司之間分配,所以我真的需要,以確保允許的類型庫的一部分。我不能讓objects
進入我的代碼。
接口方法看起來像我的選擇。我仍然遇到了一個問題,因爲我需要接口提供的'public T Parameter'。我試着把它作爲'公共對象參數',但不能覆蓋輸出類型。我去看看,如果我可以用'object'輸出 –
走這條路好做它用'object'返回類型爲我的'Parameter'屬性和結果都很好。現在完成清理代碼... –
您可以使用參數返回類型的接口返回對象,但在泛型中仍然具有更強的類型。 –