c# – 通用类型转换

前端之家收集整理的这篇文章主要介绍了c# – 通用类型转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将对象转换为泛型类型.这是一个示例方法
void Main()
{
    object something = 4;
    Console.WriteLine(SomeMethod<int>(something));
    Console.WriteLine(SomeMethod<string>(something));
}

public T SomeMethod<T>(object someRandomThing)
{

    T result = Convert.ChangeType(someRandomThing,typeof(T));

    return result;
}

这给出了这个错误

Cannot implicitly convert type ‘object’ to ‘T’. An explicit conversion exists (are you missing a cast?)

我已经尝试了几种变体来将我的结果转换为泛型类型,但每次都没有成功.

有没有办法让这个演员表演?

注意:在我的实例中,我从存储过程中获取“对象”.该方法可以调用多个存储过程之一,因此结果可以是字符串或int(或long),具体取决于调用哪个sproc.

解决方法

Convert.ChangeType返回对象,因此您需要将结果强制转换回T
T result = (T)Convert.ChangeType(someRandomThing,typeof(T))

猜你在找的C#相关文章