gpt4 book ai didi

c# - 泛型的泛型列表

转载 作者:可可西里 更新时间:2023-11-01 08:32:34 25 4
gpt4 key购买 nike

我试图在一个通用列表中存储一个通用对象列表,但我在声明它时遇到了困难。我的对象看起来像:

public class Field<T>
{
public string Name { get; set; }
public string Description { get; set; }
public T Value { get; set; }

/*
...
*/
}

我想创建一个列表。我的问题是列表中的每个对象都可以有一个单独的类型,因此填充的列表可能包含如下内容:

{ Field<DateTime>, Field<int>, Field<double>, Field<DateTime> }

那么我该如何声明呢?

List<Field<?>>

(我希望尽可能保持类型安全,所以我不想使用 ArrayList)。

最佳答案

在这种情况下,拥有一个包含非泛型位的抽象基类(或接口(interface))可能会让您受益:

public abstract class Field
{
public string Name { get; set; }
public string Description { get; set; }
}

public class Field<T> : Field
{
public T Value { get; set; }

/*
...
*/
}

然后你可以有一个List<Field> .这表达了您实际了解的有关列表的所有信息。您不知道字段值的类型,因为它们可能因一个字段而异。

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

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