Comment puis-je optimiser ce code? Je n'aime pas avoir une déclaration de cas, est-ce que je peux améliorer ce code?
6 Réponses :
assez facile. Vous ne faites jamais un élément visible seulement en fonction de l'option de cas, il suffit de définir la visibilité comme suit:
pnlDate.Visible = (selVal == "date"); pnlSubject.Visible = (selVal == "subject"); pnlofficer.Visible = (selVal == "officer"); pnlCIA.Visible = false; pnlMedia.Visible = false; pnlStatus.Visible = (selVal == "status");
J'aimerais probablement ajouter des parenthèses pour le rendre plus lisible cependant.
Je voudrais supprimer les paranthèses, car c'est comme ça que Styecop me guide à la lumière ;-)
En plus de cela, vous pouvez: désactiver l'état de vue sur Pnlcia et PnLMedia, définissez la visibilité = FALSE comme valeur par défaut dans votre ASPX. Ainsi, vous pouvez vous débarrasser des 2 .Visible = de fausses lignes. Essentiellement sur chaque post-retours visible sera toujours défini sur FALSE par défaut pour le panneau, sauf si elle est définie sur FALSE.
protected void ddlFilterResultBy_SelectedIndexChanged(object sender, EventArgs e)
{
string selVal = ddlFilterResultBy.SelectedValue.ToString().ToLower();
pnlDate.Visible = false;
pnlSubject.Visible = false;
pnlofficer.Visible = false;
pnlCIA.Visible = false;
pnlMedia.Visible = false;
pnlStatus.Visible = false;
switch (selVal)
{
case "date":
pnlDate.Visible = true;
break;
case "subject":
pnlSubject.Visible = true;
break;
case "officer":
pnlofficer.Visible = true;
break;
case "status":
pnlStatus.Visible = true;
break;
}
}
Autre moyen:
// set everything to false
Dictionary<string, type> d = new Dictionary<string, type>()
{
{"date", pnlDate},
{"subject", plnSubject},
{"officer", plnOfficer},
{"status", plnStatus}
};
d[selVal].Visible = true;
Qu'est-ce qu'il y a avec le bowvote? Je sais que le code ne fait pas exactement i> la même chose que l'original; C'est juste pour montrer l'idée.
Vous pouvez le faire:
protected void ddlFilterResultBy_SelectedIndexChanged(object sender, EventArgs e) {
string selVal = ddlFilterResultBy.SelectedValue.ToString();
pnlDate.Visible = String.Equals(selVal, "date", StringComparison.OrdinalIgnoreCase);
pnlSubject.Visible = String.Equals(selVal, "subject", StringComparison.OrdinalIgnoreCase);
pnlofficer.Visible = String.Equals(selVal, "officer", StringComparison.OrdinalIgnoreCase);
pnlCIA.Visible = String.Equals(selVal, "cia", StringComparison.OrdinalIgnoreCase);
pnlMedia.Visible = String.Equals(selVal, "media", StringComparison.OrdinalIgnoreCase);
pnlStatus.Visible = String.Equals(selVal, "status", StringComparison.OrdinalIgnoreCase);
}
Il y a une différence entre l'optimisation et l'amélioration de la lisibilité. Je suppose donc que vous envisagez d'améliorer la lisibilité plus d'optimisation n'est pas vraiment nécessaire ici. Il n'y a pas d'algo ici que vous pouvez syntoniser pour rendre cela plus rapide par une période significative. P>
Réponse 1 et 2 sera mon choix d'améliorer la lisibilité p>
Je pense que vous avez besoin d'un Il suffit de masquer les onglets si vous n'aimez pas celles-ci et que vous indiquez la page via le code. p>
L'avantage est que vous pourrez éditer et voir l'interface graphique au designtime. p>
Ce sera beaucoup plus facile à entretenir. P>
J'utilise jQuery avec Div, mais je finis à avoir des problèmes que vous pouvez voir la question que j'ai postée ici Stackoverflow.com/questions/3367166/... et je dépose l'idée d'utiliser jQuery / div