在F#Interactive中运行时,我希望以下代码创建一个简单的饼图并将其保存到磁盘:
let pie = FSharpChart.Pie([("Apples",1);("Oranges",2);("Bananas",3)])
FSharpChart.SaveAs "test.png" ChartImageFormat.Png pie
Run Code Online (Sandbox Code Playgroud)
但是,实际保存在"test.png"中的是一个空白图像.如果我将图表管道输入FShartChart.SaveAs函数,也会发生同样的情况.但是,如果我首先只执行图表创建代码并在手动执行SaveAs之前给图表提供时间,则图像会按预期保存.
有没有办法阻止对FSharpChart.Pie的调用,直到渲染完成?我在Visual Studio 2013中使用FSharpChart.fsx版本0.60.
背景: 我们有一个包含数千个伪代码函数的XML文档.我编写了一个实用程序来解析这个文档并从中生成C#代码.这是生成的代码的大大简化的片段:
public class SomeClass
{
public string Func1() { return "Some Value"; }
public string Func2() { return "Some Other Value"; }
public string Func3() { return "Some Value"; }
public string Func4() { return "Some Other Value"; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
重要的一点是每个字符串值可能会被多种方法返回.我假设通过进行一个小的更改,以便方法将返回对静态成员字符串的引用,这将减少程序集大小并减少程序的内存占用.例如:
public class SomeClass
{
private const string _SOME_VALUE = "Some Value";
private const string _SOME_OTHER_VALUE = "Some Other Value";
// ...
public string Func1() { return _SOME_VALUE; }
public string Func2() { return _SOME_OTHER_VALUE; }
public …
Run Code Online (Sandbox Code Playgroud)