Я упрощаю свой код (мне нравится писать наименьшее количество строк для каждой выполняемой функции), и я часто сталкиваюсь с длительным процессом проверки данных. Поэтому решил написать функцию проверки в псевдокоде:
public static bool Validate(string input, out object output){
// try to parse data
try {
(TypeOf(object)) output = new (TypeOf(object));
output = (TypeOf(object)).Parse(input);
return true;
} catch {
return false;
}
}
Так что, если я использую в своем коде для проверки нескольких текстовых полей, это выглядит красиво и очень читабельно:
double var1;
Int32 var2;
byte var3;
if (!Validate(txtDouble.text, var1)) return "Error validating a Double";
if (!Validate(txtInt32.text, var2)) return "Error validating a Int32";
if (!Validate(txtByte.text, var3)) return "Error validating a byte";
// else all data is valid, continue
Process(var1, var2, var3)
Я мог бы создать статический класс Validate и overload для каждого типа, но, поскольку я планирую использовать типы, включающие метод Parse, мне кажется, что должен быть способ реализации вышеуказанной функции ... I просто не знаю, что я ищу. Интерфейс все время приходит мне в голову, но не удается реализовать.
Спасибо!