gpt4 book ai didi

C# 泛型转换异常

转载 作者:太空狗 更新时间:2023-10-29 20:55:30 25 4
gpt4 key购买 nike

我在使用泛型时遇到了一个奇怪的转换问题。以下代码将抛出一个 InvalidCastException,即使 int 显然可以转换为 double。谁能解释这种行为以及如何绕过它?

public class TestClass<T>
{
public T Cast(object o)
{
return (T)o;
}
}

public void Main()
{
TestClass<double> w = new TestClass<double>();
double x = w.Cast(10);
}

编辑:

由于我在 .net 4.0 领域,无论如何我已经将其更改为使用“动态”而不是“对象”,并且一切都按预期工作。感谢所有现场和快速回复。

最佳答案

但是 object 不能转换为 double o 参数接受一个 object,不是 int

例如,以下代码因 InvalidCastException 而失败:

 object o = 1000;
double x = (double)o;

关于C# 泛型转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324936/

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