Así que estoy pasando código antiguo (2.0) y me encontré con esto:Usando "como bool?" en lugar de "objetar algo ViewState = [" Hola "]"
object isReviewingValue = ViewState["IsReviewing"];
if (isReviewingValue is bool)
{
return (bool)isReviewingValue;
}
Mi primer pensamiento fue para nosotros el "como" palabra clave para evitar lo innecesario
(bool)isReviewingValue;
Pero "como" solo funciona con tipos sin valor. No hay problema, sólo siguió adelante e hizo esto:
bool? isReviewingValue= ViewState["IsReviewing"] as bool?;
if (isReviewingValue.HasValue)
{
return isReviewingValue.Value;
}
pregunta es: Además de mirar un poco más legible, es esta de hecho mejor?
EDIT:
public Stopwatch AsRun()
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (Int32 loopCounter = 0; loopCounter < 10000; loopCounter++)
{
Object value = true;
Boolean? test = value as Boolean?;
if (test.HasValue)
{
Boolean something = test.Value;
}
}
watch.Stop();
return watch;
}
public Stopwatch ObjectIsRun()
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (Int32 loopCounter = 0; loopCounter < 10000; loopCounter++)
{
Object test = true;
if (test is Boolean)
{
Boolean something = (Boolean)test;
}
}
watch.Stop();
return watch;
}
Respuesta: Resulta que con los métodos anteriores se ejecutan de manera de prueba, el código original es aproximadamente 10 veces más rápido.
no lo hago Comprende por qué estás haciendo esto. No hay ninguna mejora Contienen la misma cantidad de líneas de código. El segundo NO es más claro que el primero; de hecho, hay más 'ruido' en el segundo. Yo digo que dejen al primero solo. –
Principalmente porque parece realmente tonto escribir como objeto, usar es, luego escribir de nuevo a booleano cuando bool? me ocuparé de eso y me da una manera fácil de verificar si el valor era booleano en primer lugar (HasValue). Saber que al convertir valores bool a null no parece ser una elección más sensata, entonces toda la ronda sobre la cadena se opone a bool. –
Sin embargo, dicho esto, tenía curiosidad también desde el punto de vista del rendimiento. –