使用 .Net 的 StatisticFormula 库

use*_*135 4 .net c# normal-distribution

C# 命名空间 System.Windows.Forms.DataVisualization.Charting.StatisticFormula 似乎有一些我需要的统计函数。命名空间记录在MSDN 此处。我真的很想使用 InverseNormalDistribution(double Z) 函数。问题是构造函数是内部的,所以我无法以我所知道的任何方式访问这些函数。

有什么方法可以访问这个命名空间中的静态函数,还是我必须找到其他解决方案?

dob*_*lak 6

您可能可以使用反射,这样的事情应该这样做:

var statisticFormula = 
    (StatisticFormula) typeof(StatisticFormula).GetConstructor(
        BindingFlags.NonPublic | BindingFlags.Instance,
        null, Type.EmptyTypes, null).Invoke(null);
Run Code Online (Sandbox Code Playgroud)

但这可能是更好的方法:

var chart = new Chart();
var value = chart.DataManipulator.Statistics.InverseNormalDistribution(.15)
Run Code Online (Sandbox Code Playgroud)

  • 可能想在图表中添加一个 using,即 using (var chart = new Chart()) { return chart.DataM.....; }. 有趣的是,如此有用、可重用的代码隐藏在如此繁琐的命名空间和 API 中。 (4认同)