Я все еще пытаюсь учиться, и, поскольку я не знаю много ровесников, у которых хорошие знания в программировании, я сказал себе, чтобы начать задавать больше вопросов о хороших практиках программирования, если я не могу найти правильный ответ в интернете.отказаться от значений по умолчанию
Интересно, какой лучший подход для этого сценария. У меня была функция, которая должна была рассчитывать параметр, основанный на некоторых данных, которые также были подсчитаны.
private float CountAvailability(DateTime startDate, DateTime endDate, string machine)
{
float value=0;
float machineUptime = _repostory.Select(machine);
float machineDownTime = _repostory2.Select(machine);
value = machineUptime *machineDownTime ;
//some other magic here
return value;
}
Из coruse это пример кода, и на самом деле он намного сложнее.
Теперь я использую эту функцию еще в нескольких других местах моего кода, и теперь вам нужно передать еще несколько параметров. Я бы предпочел не пересчитывать их снова в другом месте, и я не хочу повторять свой код, чтобы создать копию этой функции только для этой цели, поэтому я подумал об использовании ref или out.
private float CountAvailability(DateTime startDate, DateTime endDate, string machine,
ref float machineUptime , ref float machineDownTime)
{
float value=0;
float machineUptime = _repostory.Select(machine);
float machineDownTime = _repostory2.Select(machine);
value = machineUptime *machineDownTime ;
//some other magic here
return value;
}
Теперь я могу получить некоторые другие параметры из функции. Единственная проблема в том, что я не хочу этого делать в любом месте, где я использую эту функцию.
Некоторые из мест, это так
CountAvailability(tempStartDate, tempEndDate, machine , ref machineUptime, ref machineDownTime)
и в других функции должны оставаться одинаковыми.
CountAvailability(tempStartDate, tempEndDate, machine)
но я должен передать пустой объявленный плавающий элемент, чтобы это работало. Есть ли другой способ заставить это работать? Или, может быть, для этого есть еще одно экологически чистое решение?
С уважением!
Ну, я думаю, я поеду с возвратом объектного подхода, так как это сделает код более читаемым. Большое спасибо Jon :) –