gpt4 book ai didi

c# - 摘要泛型和摘要列表

转载 作者:行者123 更新时间:2023-11-30 19:28:49 25 4
gpt4 key购买 nike

我没有在现有问题中找到我的用例,所以我开始吧。我有一个抽象类,它有这样的泛型:

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 使用接口(interface)而不是抽象类,但我想将它迁移到抽象类,这样我就可以简化我的“类型”类,而不是为每个“重复相同的代码”类型”。

有什么想法吗?

编辑

我忘了提及它将成为一个库的一部分,该库将在公司中分发,因此我确实需要确保允许的类型。我不能只允许 objects 被输入我的代码。

最佳答案

除非您放弃使用对象,否则您可能仍然需要非通用接口(interface)(或 Brandon 所说的非通用抽象基类)。

原因是aParameter<String>aParameter<int32> 的类型不同因此,如果没有一些帮助,您将无法将它们放入一本字典中。

我的首选方法是声明一个非泛型接口(interface)并将其用作字典的基础,然后在每个类型化的泛型以及抽象基类中实现它。这样您就可以尽可能从基类继承,或者如果您的一种类型需要从其他类型继承,则只实现接口(interface) - 您可以获得最大的灵 active 。

关于c# - 摘要泛型和摘要列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com