в одном из моих проектов я использую следующие два метода. 1. GetDoubleValue и 2. GetIntValue. GetDoubleValue использует double.TryParse для параметра str string и возвращает 0, если он терпит неудачу, в то время как GetIntValue пытается int.TryParse параметру str string и возвращает 0, если он терпит неудачу. Я хочу объединить эти два метода в один общий метод, который вместе с строкой str также получает параметр T, поэтому, если я хочу использовать метод GetDoubleValue, я могу использовать double для параметра T, и если я хочу использовать метод GetIntValue, я могу использовать Int для параметра T
public double GetDoubleValue(string str)
{
double d;
double.TryParse(str, out d);
return d;
}
public int GetIntValue(string str)
{
int i;
int.TryParse(str, out i);
return i;
}
Примечание. Я пробовал что-то вроде этого:
private T GetDoubleOrIntValue<T>(string str) where T : struct
{
T t;
t.TryParse(str, out t);
return t;
}
ИЗМЕНИТЬ
В моей базе данных у меня более 30 столбцов в разных таблицах с числовым типом данных. Я хочу вставить 0 в каждый столбец, если пользователь не вводит ничего в текстовое поле. Если он оставляет все или некоторые текстовые поля пустыми. Если я не использую метод GetIntValue, мне придется использовать тело метода более 30 раз. поэтому я делаю это с помощью метода. Например, я пишу три из более чем тридцати примеров
cmd.Parameters.Add("@AddmissionFee", SqlDbType.Decimal).Value = GetIntValue(tbadmissionfee.Text);
cmd.Parameters.Add("@ComputerFee", SqlDbType.Decimal).Value = GetIntValue(tbcomputerfee.Text);
cmd.Parameters.Add("@NotesCharges", SqlDbType.Decimal).Value = GetDoubleValue(tbnotescharges.Text);
Я хочу объединить вышеупомянутые два метода, потому что сегодня у меня есть два метода, которые, если они будут объединены, не улучшат программирование, но завтра у меня может быть несколько таких методов, которые лучше сочетаются в одном общий метод. например, у меня может быть GetInt32Value, GetShortValue и т.д. надеюсь, что теперь очищено, почему я хочу это???