gpt4 book ai didi

c# - 为什么我不能将泛型类型转换为值类型

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

这可能是一个基本问题,但为什么在将值类型列表传递给泛型方法时不能将泛型类型转换回其原始类型?

IList<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8 };
Inverse<int>(list);

public void Inverse<T>(IList<T> list)
{
for (i = 0; i <= list.Count / 2; i++)
{
int a = list[i] as Int16; //=> does not work
int b = (int)list[i]; //=> does not work either

}
}

最佳答案

我希望不会,因为您假设 IList 中的类型是“int”,所以您完全错过了泛型方法的要点。

如果你这样做了:

T a = (T)list[i]

然后它就可以工作了。

关于c# - 为什么我不能将泛型类型转换为值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205027/

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