我还没有找到我的用例在现有的问题,所以我在这里。 我有了泛型这样一个抽象类:抽象的泛型和摘要列表
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'属性和结果都很好。现在完成清理代码... –
您可以使用参数返回类型的接口返回对象,但在泛型中仍然具有更强的类型。 –