gpt4 book ai didi

C# 无法将 T 转换为 T

转载 作者:太空狗 更新时间:2023-10-30 00:08:22 24 4
gpt4 key购买 nike

我有一个通用集合 MyCollection<T>我做的,一切正常,除了这个新功能Apply我正在添加:

class MyCollection<T> {
T value;
public MyCollection(T starter) { value = starter; }
public MyCollection<S> Apply<T, S>(Func<T, S> function) {
return new MyCollection<S>(function(value)); // error in function(value)
}
}

这给了我一个我以前从未见过的错误:

Argument 1: cannot convert from 'T' to 'T [C:\folder\code.cs (line number)]'

这两个是什么T类型?我正在尝试的转换有什么问题?

最佳答案

你的问题是类型参数T在

class MyCollection<T>

中的T不是同一类型参数
Apply<T, S>

因此您的函数采用不同于的类型的另一种类型

如果你改变

Apply<T, S>

Apply<S>

你的代码会编译

关于C# 无法将 T 转换为 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320534/

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