【发布时间】:2010-06-17 13:15:52
【问题描述】:
我有一个执行某些操作的函数,即从数据库中获取一些数据。 它采用的泛型始终是原始类型,即 int、char、bool、string 等。我可以轻松地创建它的实例。但是我无法将从数据库中获取的值设置为这个实例。
public T PerformOperation<T>()
{
object instance = (T)Activator.CreateInstance(typeof(T));
object result=FetchData();
instance = (T)result; //It gives error on this statement
}
函数调用如下:
int result = PerformOperation<int>();
是否有某种方法可以将对象类型转换为任何始终为原始的泛型类型?
【问题讨论】:
-
错误是什么?您最终试图将其转换为可能无法实现的 int
-
FetchData 返回什么类型?
-
确实——这可能是
Convert.ChangeType的工作 -
FetchData 返回我将在 T 中提供的类型。例如,如果 FetchData 返回类型 varchar2,那么我将调用函数为:string result=PerformOperation
();
标签: c# types instance primitive