2012-07-12 5 views
3

L'espace de noms C# System.Windows.Forms.DataVisualization.Charting.StatisticFormula semble avoir quelques fonctions statistiques dont j'ai besoin. L'espace de noms est documenté au MSDN here. J'aimerais vraiment utiliser la fonction InverseNormalDistribution (double Z). Le problème est que le constructeur est interne et donc je ne peux pas accéder aux fonctions de toute façon que je connais.Utilisation de la bibliothèque StatisticFormula de .Net

Existe-t-il un moyen d'avoir accès aux fonctions statiques dans cet espace de noms, ou devrai-je trouver une autre solution?

+0

peut vous montrer un exemple de ce que vous avez à ce jour dans ce qui concerne le code C# ..? Je pense que cela aura plus de sens une fois que nous pourrons voir ce que vous utilisez et ou comment vous essayez d'implémenter la méthode. – MethodMan

+0

J'essayais ceci: var stat = new System.Windows.Forms.DataVisualization.Charting.StatisticFormula () Console.WriteLine (stat.InverseNormalDistribution (0.5)); // Cela me donnerait une erreur de compilation. – user1214135

Répondre

3

Vous pourriez probablement utiliser la réflexion, quelque chose comme ça devrait le faire:

var statisticFormula = 
    (StatisticFormula) typeof(StatisticFormula).GetConstructor(
     BindingFlags.NonPublic | BindingFlags.Instance, 
     null, Type.EmptyTypes, null).Invoke(null); 

Mais cela peut être une meilleure façon:

var chart = new Chart(); 
var value = chart.DataManipulator.Statistics.InverseNormalDistribution(.15) 
+0

C'est exactement ce dont j'avais besoin (la deuxième partie). Merci. – user1214135

+3

peut vouloir ajouter une utilisation au tableau, c'est-à-dire en utilisant (var chart = new Chart()) {return chart.DataM .....; } C'est marrant de voir comment un tel code réutilisable est caché dans un espace de noms et une API si encombrants. – gatapia

Questions connexes