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 : de root
