Функция единой библиотеки всегда возвращает 0 - PullRequest
0 голосов
/ 05 марта 2019

Я написал библиотеку для единицы, и одна функция должна возвращать время воспроизведения. может быть проще объяснить с помощью кода.

public int UNI_TimePlayed(int timePlayed)
        {
            if (timePlayed != 60)
            {
                // division impossible, treat this exception here
                return timePlayed;
            }
            else
            {

                // it's safe to divide
                int timeInMin = timePlayed / 60;
                return timeInMin;
            }
        }

если время воспроизведения не равно 60 секундам, то оно должно вернуть значение. если он равен 60 или более, выполните уравнение и верните новое значение.

когда я вызываю это в единице, он будет работать только после того, как мой таймер превысит 60 секунд, если нет, то вернет 0. Например, мой таймер в единстве работает, я записываю значение из него до того, как оно будет вставлено в эта функция. в одном случае введенное значение было 62, функция вернула мне правильное значение. в этом случае таймер был 23, и когда он был вставлен, функция вернула 0? как вы можете видеть, я пытался заставить его просто вернуть вставленное значение, если оно меньше 60, но оно не будет работать.

1 Ответ

2 голосов
/ 05 марта 2019

Вы использовали !=, что означает «не равно».Вы должны использовать <, что означает «меньше чем».

public int UNI_TimePlayed(int timePlayed)
{
    if (timePlayed < 60) return timePlayed;
    return timePlayed / 60;
}

Однако значение, внезапно изменяющееся от секунд до минут, довольно удивительно.Возвращение строки, содержащей единицу, будет более естественным.

public string UNI_TimePlayed(int timePlayed)
{
    if (timePlayed < 60) return $"{timePlayed} s";
    return $"{timePlayed / 60} min";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...