Здравствуйте, Аноним, Вы писали:
А>Есть шаблон функции, которая должна возвращать из базы данных базовый тип, который ей указывается в качестве параметра.
А>А> protected T ExecuteScalar<T>(string sql)
А> {
А> return (T)ExecuteScalarCore(sql); // Возвращает object
А> }
А>
А>Но в стлучае, если результат выполнения SQL-запроса NULL, то возникает InvalidCastException при приведении (T)obejct
А>Как выйти из этой ситуации? Сейчас я перехватываю и обрабатываю InvalidCastException
А>Кстати, а в чём разница между Generic и шаблонами C++ ?
можно так:
protected T ExecuteScalar<T>(string sql)
{
return ExecuteScalarCore(sql) as T;
}
в этом случае в случае нула в методе ExecuteScalarCore, тебе и твой метод вернет нулл...
иначе просто добавь условие на проверку — нулл или не нулл