установка значения для экземпляра примитивных типов - PullRequest
1 голос
/ 17 июня 2010

У меня есть функция, которая выполняет некоторую операцию, т.е. извлекает некоторые данные из базы данных.Это универсальный тип примитива, то есть 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>();

Есть ли какой-нибудь способ приведения объектаТип любого универсального типа, который всегда примитивен?

1 Ответ

1 голос
/ 17 июня 2010

Если у вас уже есть тип 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.
}
...