gpt4 book ai didi

c# - 在泛型函数中使用集合

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:49 24 4
gpt4 key购买 nike

我试图对 2 种集合使用通用函数,我在其中调用方法 Add。

所以在我的代码下面:

using System;
using System.Collections;

namespace CollectionsApplication
{
class Program
{
static void AddElement<T>(ref T container, string key, string value)
{
container.Add(key, value);
}

static void Main(string[] args)
{
SortedList s1 = new SortedList();
Hashtable h1 = new Hashtable();

AddElement<SortedList>(ref s1, "001", "Zara Ali");
AddElement<Hashtable>(ref h1, "001", "Zara Ali");
}
}
}

错误下方:

error CS1061: 'T' does not contain a definition for 'Add' and no extension method 'Add' accepting a first argument of type 'T'

那么这可以执行吗?如果可能的话如何解决?

提前谢谢你。

最佳答案

这里的问题是 T 可以是任何东西(例如 int)并且不能保证有 Add 方法。

您需要将 T 限制为具有 Add 方法的对象。

static void AddElement<T>(ref T container, string key, string value)
where T : IDictionary
{
container.Add(key, value);
}

关于c# - 在泛型函数中使用集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703814/

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