gpt4 book ai didi

c# - 在 C# 扩展函数中使用泛型

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

我正在使用泛型将 Java 代码转换为 C#,但在使用此类容器时遇到了问题:

public static class MyExtensions
{
public static void add(this List<object> list, object obj)
{
list.Add(obj);
}
public static void add(this List<string> list, string s)
{
list.Add(s);
}
}

似乎泛型在比较参数时丢失了,两种方法发生了冲突。我想要关于泛型是否可以以这种方式使用的任何建议。是否有可能用一个单一的支持所有列表操作:

    public static void add(this List<object> list, object obj)
{
list.Add(obj);
}

例如?

SUMMARY 所有响应都有相同的解决方案。List可以抽象为ICollection。总的来说,这对于生产代码来说可能不是一个好主意。

最佳答案

怎么样:

public static void add<T>(this IList<T> list, T value)
{
list.Add(value);
}

(实际上,它可能是 ICollection<T> ,因为这个(不是 IList<T> )定​​义了 Add(T) )

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

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