gpt4 book ai didi

c# - 只接受少数类型的列表

转载 作者:行者123 更新时间:2023-11-30 14:36:56 26 4
gpt4 key购买 nike

在 C# 的任何系统命名空间中是否存在一个只能接受某些类型的容器?例如,我想创建我的列表,其中我将只有类型为 Class1 和 int 的对象:

//accept only type Class1 and int;
MYLIST lst = new MYLIST(typeof(Class1), typeof(int));
lst.Add( 23 ); // OK
lst.Add( new Class1() ); // OK
lst.Add( "text" ); // wrong, not accepted type

.NET 中是否有类似的东西,还是我必须自己编写?谢谢。

最佳答案

C# 类型系统不允许您表达类似“Class1int”的内容。话虽如此,您可以使用重载来完成一半的工作:

class MyClass
{
private List<object> _items = new List<object>();
public void Add(int value) { _items.Add(value); }
public void Add(Class1 value) { _items.Add(value); }
...
}

真正棘手的问题是如何取出,而不是如何放入。有几种可能性:将所有内容都输出为 object (通过实现 IEnumerable<object> ),也许还有像 GetInt(int index) 这样的特殊方法和 GetClass1(int index) .

关于c# - 只接受少数类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9927227/

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