Как сделать проверку типов в generic-методе
От: aleyush Россия  
Дата: 20.01.07 09:01
Оценка:
Вопрос скорее просто по синтаксису, но что-то туплю.

Делаю метод для чтения параметров из строки запроса ASP.NET. Такой вариант работает:

        protected bool TryLoadRequestParam<T>(string ParamName, out T ParamValue)
        {
            string paramValue = Request.Params[ParamName];
            if (paramValue == null)
            {
                ParamValue = default(T);
                return false;
            }

            try
            {
                ParamValue = (T)Convert.ChangeType(paramValue, typeof(T));
            }
            catch (InvalidCastException)
            {
                ParamValue = default(T);
                return false;
            }

            return true;
        }



Что в этом варианте не нравится.
Подавляющее большинство использований этой функции — либо string, либо int.
Хочется вставить перед try что-то в этом духе:

if (T это string) {ParamValue=paramValue; return}
if (T это int) return int.TryParse(paramValue, out ParamValue);


Но не могу это оформить с точки зрения синтаксиса. Как это можно сделать?

P.S. Вариант сделать 3 отдельные функции понимаю, но хочется все-таки одну (к тому же на нее уже код завязан).
---
Александр Ющенко
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.