С# при развертывании как пакет nuget простой расчет дает неверные результатыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 С# при развертывании как пакет nuget простой расчет дает неверные результаты

Сообщение Anonymous »

Следующая функция
public int GetNumber()
{
int num = (condition1 ? 3 : (condition2 ? 1 : 2));
int num2 = (condition3 ? 6 : (condition4 ? 3 : 0));
return num + num2;
}

возвращает правильный результат при запуске в тестах.
Но когда я включаю его в пакет NuGet и ссылаюсь на него в другом проекте, он иногда дает неправильные результаты,
например. для условия 1 и 2 оно устанавливает num = 1
, а условие 3 и 4 устанавливает num2 = 0
что правильно, но оно возвращает 4, и я понятия не имею, почему оно это делает.
Я пытался установить переменную между ними, но VS оптимизирует ее, удаляя эту переменную во время сборки. Приведенный выше код представляет собой нечто вроде того, что сделала сборка. Я установил точки останова в коде, пытаясь обнаружить проблему.
Исходный код
public int Get9Box(Measurements measurements, Parameters parameters)
{
int bathBox = 0;
int liquidusBox = 0;
if (measurements.CurrentBathTemperature > parameters.BathTargetTemperature + parameters.DeadBand)
{
bathBox = 3;
}
else if (measurements.CurrentBathTemperature < parameters.BathTargetTemperature - parameters.DeadBand)
{
bathBox = 1;
}
else
{
bathBox = 2;
}

if (measurements.AverageLast4Liquidus > parameters.LiquidusTargetTemperature + parameters.DeadBand)
{
liquidusBox = 6;
}
else if (measurements.AverageLast4Liquidus < parameters.LiquidusTargetTemperature - parameters.DeadBand)
{
liquidusBox = 0;
}
else
{
liquidusBox = 3;
}
int result = bathBox + liquidusBox;
return result;
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ng-results
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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