У меня есть представление Razor с оператором if, который находится внутри оператора foreach:
@{
var items = new List<SelectListItem> { new SelectListItem { Value = "0", Text = @"Select Item" } };
foreach (var @case in Model.Items)
{
var selected = false;
if (Model.MyProp != null && Model.MyProp.Id == @case.Id)
{
selected = true;
}
items.Add(new SelectListItem { Value = @case.Id.ToString(), Text = @case.MyReference, Selected = selected });
}
}
Resharper выделяет оператор if и предлагает "Заменить одним присваиванием".Отлично, давайте сделаем это!Мы получаем:
bool selected = Model.MyProp != null && Model.MyProp.Id == @case.Id;
Но затем проект не удается построить, и дважды возникает следующая ошибка:
CS1513} ожидается
Один раз длянаш файл .cshtml, и еще раз для App_Web_44i02p0n.0.cs
(который я предполагаю, что это какой-то временный сгенерированный файл?).
Если я верну рефакторингу, то он успешно скомпилируется.
Я заменил ключевое словоимя с чем-то еще, и это также успешно компилируется.
Почему эта единственная строка присваивания вызывает ошибки компиляции при использовании ключевого слова C #?