Значение перечисления изменяется между двумя контекстами - PullRequest
0 голосов
/ 12 октября 2018

Может кто-нибудь объяснить, что здесь происходит и как я мог бы избежать такого поведения в будущем?

1.Вот код, который будет называться

public enum SessionVariables : int{
    Step,
    Volume,
    VAT
}

//Extracted to improve readability.
public static void Save(Object variableIdentifier, ReturnedType value)
{
    //Stuff going here
}

2.Вот код вызова

SessionHelper<int>.Save(SessionVariables.Volume, volume);

Оба раздела 1. и 2. находятся в одном проекте.

3.Тайна

У меня была проблема, поэтому я посмотрел ближе с отладчиком из visual studio.Хотя функция Save() вызывается с SessionVariables.Volume, отладчик показывает мне, что в качестве параметра задано SessionVariables.VAT.

Screenshot - I halted the program

Screenshot - One step into later

При попытке отладки я понял, что эта проблема возникает, когда я добавляю или переименовываю значения в enum.Также кажется, что если я вручную инициализирую значения перечисления:

public enum SessionVariables : int{
    Step = 1,
    Volume = 2,
    VAT = 3
}

, тогда ошибка возникает в другом месте.

Например, функция вызывается с SessionVariables.VAT, но в качестве параметра принимается SessionVariables.Volume.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...