我有一个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关键字时,这条赋值行会导致编译错误?