Отладка метода итератора в VS2010 SP1 (с настройками DEBUG ... без оптимизации компилятора), одна из моих переменных, операнд , "не существует в текущем контексте" в соответствии с Quick Watch в Немедленное окно (я также не получаю всплывающее окно, если навести курсор мыши на переменную).
Переменная находится в области видимости.
Мысли о том, что может вызывать это или как его избежать?
private IEnumerable<Answer> CreateVirtualFormulaAnswers(Question question, List<Answer> answers)
{
string[] formulaParts = question.Formula.Split(FORMULA_SPLIT, StringSplitOptions.None);
string formula = formulaParts[0].Trim();
if (formulaParts.Length != 2) throw new Exception("Formula format is incorrect: " + question.Formula);
// At this point:
// formulaParts.Length = 2
// formulaParts has a non-null string at each index
// Mouse over of "op" in VS2010 debugger does not show any popup
// Quick watch and immediate window both state: "The name 'operand' does not exist in the current context"
string operand = formulaParts[1].Trim();
string answerText = (from a in answers where a.QuestionCode == op select a.Text).SingleOrDefault();
if (answerText != null)
{
yield return new Answer()
{
/* Initialization code here based on formula */
};
}
}