lang:csharp:textes
Ceci est une ancienne révision du document !
Table des matières
Évaluation d'une expression (opération ou condition) sous forme de texte
La première (mauvaise) solution est d'utiliser ScriptControl
. Ce composant est dépendant de Windows et n'est pas compatible 64 bits. La plateforme cible doit être x86
et non Any CPU
. En plus, il ne s'agit pas d'un composant natif c# et donc la modification de code à la volée (en debug) d'une fonction contenant ce contrôle est impossible.
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl(); sc.Language = "VBScript"; string expression = "1+1"; object result = null; try { result = sc.Eval(expression); } catch (COMException) { throw new Exception("Impossible d'évaluer l'expression VB : " + expression); } string resultat = result.ToString();
La bonne solution est d'utiliser DataTable
.
DataTable dt = new DataTable(); object result = null; try { result = dt.Compute(condition, ""); } catch (SyntaxErrorException) { throw new Exception("Impossible d'évaluer l'expression VB : " + condition); } string resultat = result.ToString();
Concaténation de string
Il est fortement déconseillé d'utiliser dans des boucles la concaténation de string puisqu'en interne, C#
crée à chaque fois un nouveau string
. Dans ce cas, il est conseillé d'utiliser un StringBuilder
.
StringBuilder stringBuilder = new StringBuilder("Début"); stringBuilder.Append("coucou").Append(", bien le bonjour."); string finalement = stringBuilder.ToString();
Valeur numérique d'un caractère
Expression régulière
lang/csharp/textes.1494929274.txt.gz · Dernière modification : 2017/05/16 12:07 de root