我有一个执行某些操作的功能,即从数据库中提取一些数据。 它所采用的泛型是原始类型,即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>();
是否有某种方法可以将对象Type转换为总是原始的任何泛型类型?
答案 0 :(得分:1)
当你已经有了类型T时,为什么要把它装入Object中。
public T PerformOperation<T>()
{
T instance = (T)Activator.CreateInstance(typeof(T)); // why do you need this ?
T result = FetchData();
//instance = (T)result;
return result;
}
或者可能是这种方式,如果您必须使用Object
。
public T PerformOperation<T>()
{
//object instance = (T)Activator.CreateInstance(typeof(T));
//object result=FetchData();
return (T)FetchData(); // If I could get you correctly.
}