Je vais donc par l'ancien code (2.0) et je suis tombé sur ceci:Utilisation de "as bool?" au lieu de « quelque chose = objet ViewState [ » salut « ] »
object isReviewingValue = ViewState["IsReviewing"];
if (isReviewingValue is bool)
{
return (bool)isReviewingValue;
}
Ma première pensée nous était la « comme » mot-clé pour éviter les inutiles
(bool)isReviewingValue;
Mais "as" ne fonctionne qu'avec les types sans valeur. Pas de problème, je suis allé de l'avant et a fait:
bool? isReviewingValue= ViewState["IsReviewing"] as bool?;
if (isReviewingValue.HasValue)
{
return isReviewingValue.Value;
}
Question est: En plus de la recherche un peu plus facile à lire, est-ce mieux en fait?
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;
}
Réponse: Il s'avère que les méthodes ci-dessus fonctionnent en mode test, le code d'origine est d'environ 10 fois plus rapide.
Je ne Comprenez pourquoi vous faites cela. Il n'y a pas d'amélioration. Ils contiennent le même nombre de lignes de code. Le second n'est pas plus clair que le 1er; en fait, il y a plus de «bruit» dans le second. Je dis laisser le premier seul. –
Principalement parce qu'il semble vraiment idiot de taper comme objet, l'utilisation est, alors tapez back to boolean quand bool? J'en prendrai soin pour moi et me donne un moyen facile de vérifier si la valeur était booléenne en premier lieu (HasValue). Sachant que convertir des valeurs bool à null semble être un choix plus judicieux alors tout le tour de la chaîne à objecter à bool. –
Cependant, cela étant dit, j'étais aussi curieux du point de vue de la performance. –