Я пытаюсь объединить кучу подобных методов в общий метод. У меня есть несколько методов, которые возвращают значение querystring, или null, если эта последовательность не существует или не находится в правильном формате. Это было бы достаточно легко, если бы все типы были обнуляемы, но я должен использовать тип с нулевым общим типом для целых чисел и дат.Создание общего метода в C#
Вот что у меня есть сейчас. Однако он вернет 0, если числовое значение недействительно и, к сожалению, является допустимым значением в моих сценариях. Может кто-нибудь мне помочь? Благодаря!
public static T GetQueryString<T>(string key) where T : IConvertible
{
T result = default(T);
if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false)
{
string value = HttpContext.Current.Request.QueryString[key];
try
{
result = (T)Convert.ChangeType(value, typeof(T));
}
catch
{
//Could not convert. Pass back default value...
result = default(T);
}
}
return result;
}
Не совсем уверен, как это относится к этой ситуации ... ?? –
Он переносит кучу реализаций, поэтому звоните по старой функции, запомните результат, вызовите новую функциональность, запомните результат, сравните. Теперь сделайте это 100 раз с кучей случайных входов и вуаля! –
Прошу прощения, я до сих пор не понимаю, как это применимо в этом случае. Я все еще пытаюсь заставить функцию работать. –