2008-11-24 8 views
3

Existe-t-il un bon moyen de convertir des chaînes telles que "xlSum", "xlAverage" et "xlCount" en valeur sous Microsoft.Office.Interop.Excel.XlConsolidationFunction?C# Technique - Obtention de valeurs constantes par chaîne

Je suppose que la réflexion serait lente (si c'est possible). Il y a environ 10 de ces valeurs constantes. J'essayais d'éviter une grande déclaration de commutateur si possible.

Répondre

5

C'est un ENUM donc vous devriez être en mesure d'utiliser

using Microsoft.Office.Interop.Excel; 

XlConslidationFunction func = (XlConsolidationFunction) 
           Enum.Parse(typeof(XlConsolidationFunction), 
              stringVal); 
+0

Vous aurez besoin d'un casting entre " = "et" Enum ", mais +1 –

+0

(ne fonctionnera pas pour une énumération) –

+0

thx. Je n'utilise jamais la syntaxe, mais j'essayais de la rendre plus jolie pour le post. – tvanfosson

0

Au lieu de l'interrupteur, vous pouvez toujours utiliser un Dictionary<string, ...> et le remplir une fois lorsque l'application commence