1

我有一个执行一些操作的函数,即从数据库中获取一些数据。它采用的泛型始终是原始类型,即 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>();

是否有某种方法可以将对象类型转换为任何始终原始的泛型类型?

4

1 回答 1

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.
}
于 2010-06-17T05:10:16.270 回答