Это нормальная практика в C# или по какой-то причине это просто ужасная идея? [закрыто]C#

Место общения программистов C#
Anonymous
Это нормальная практика в C# или по какой-то причине это просто ужасная идея? [закрыто]

Сообщение Anonymous »

Я знаю, что когда вы спросите о «лучших практиках», вы получите ответы от «такого не существует» до «если вы не можете им следовать, вы ошибаетесь», поэтому я могу получить не самые лучшие ответы. Однако из-за этого...
Я зацикливаюсь на "лучшем способе сделать..." или "Может быть, мне не хватает каких-то знаний, которые нужны другим, чтобы сделать это лучше?" все время, и из-за этого я намного медленнее кодирую. Конечно, хорошо обдумывать эти вещи, но не в той степени, в которой я это делаю, я не думаю. Я хочу сказать, что если я смогу успокоиться с помощью советов опытных программистов относительно моего выбора и того, что я считаю правильным, тогда я смогу двигаться дальше и перестать так сильно себя критиковать.
Что касается примера, это механика синхронизации игрового цикла, которую я создал, чтобы создать своего рода таймер.

Код: Выделить всё

  public bool CheckTimestamps(string key, float requiredDelay, bool repeat) {
requiredDelay = ConvertToMicroseconds(requiredDelay);
if (timestamps.ContainsKey(key)) {
float timeDifference = (float)totalMicroseconds - timestamps[key];
if (timeDifference > requiredDelay) {
if (repeat) {
Timestamp(key);
}
else {
timestamps.Remove(key);
}
return true;
}
else {
return false;
}
}
else {
Timestamp(key);
return true;
}
}
Я думаю, что это выглядит нормально и работает довольно хорошо, но это та часть: «Есть ли лучший способ, который я не знаю достаточно, чтобы придумать?»
С другой стороны, мне это кажется немного... беспорядочным. Так что я сделал это, чтобы "чтобы оно выглядело лучше", имхо

Код: Выделить всё

   public bool CheckTimestamps(string key, float requiredDelay, bool repeat) {
requiredDelay = ConvertToMicroseconds(requiredDelay);
if (timestamps.ContainsKey(key)) {
float timeDifference = (float)totalMicroseconds - timestamps[key];
if (timeDifference > requiredDelay) {
if (repeat) { Timestamp(key); }
else { timestamps.Remove(key); }
return true;
}
else { return false; }
}
else {
Timestamp(key);
return true;
}
}
по сути, объединение однострочных операторов if/else в одну строку, а не использование громоздкого блока для такого небольшого кода. Это что-то... приемлемое?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ome-reason

Вернуться в «C#»