ejemplos - foreach c# list
¿Cómo soluciono el problema: acceso a la variable foreach en la advertencia de reinicio de cierre? (2)
Otra opción es aplicar el atributo JetBrains.Annotations.InstantHandleAttribute
al método DisplayBooleanFor
.
Recibo esta advertencia ReSharper: Acceso a la variable foreach en el cierre. Puede tener un comportamiento diferente cuando se compila con diferentes versiones del compilador .
Esto es lo que estoy haciendo:
@foreach(var item in Model)
{
// Warning underlines "item".
<div>@Html.DisplayBooleanFor(modelItem => item.BooleanField)</div>
}
Mi extensión es la siguiente:
public static MvcHtmlString DisplayBooleanFor<TModel, TValue>(
this HtmlHelper<TModel> helper,
Expression<Func<TModel, TValue>> expression)
{
bool value;
try
{
var compiled = expression.Compile()(helper.ViewData.Model);
value = Convert.ToBoolean(compiled);
}
catch (Exception)
{
value = false;
}
return MvcHtmlString.Create(value ? "Yes" : "No");
}
Tenga en cuenta que esto funciona como se esperaba, pero ¿cómo puedo evitar esta advertencia?
Apreciaré cualquier ayuda proporcionada.
Una variable de ámbito de bloque debería resolver la advertencia.
@foreach(var item in Model)
{
var myItem = item;
<div>@Html.DisplayBooleanFor(modelItem => myItem.BooleanField)</div>
}