我可以使用F#Interactive来编写脚本或交互式调试/测试我的C#GUI项目吗?

boh*_*nko 4 c# debugging f#

我看过F#和DirectX的演示.

用户选择一部分F#代码并将其发送给F#interactive.它之间,表单的线程正在工作:表单显示动态内容并响应点击.

我可以得出结论,对于现有的C#winforms项目, 我可以创建一个引用它的F#项目,然后在F#interactive中启动F#项目 来运行表单的任意方法 吗?

编辑:btShowNextNumber_Click在正在运行的应用程序中调用的步骤是什么?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    int i = 0;

    private void btShowNextNumber_Click(object sender, EventArgs e)
    {
        ++i;
        label1.Text = i.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

kvb*_*kvb 7

当然.在F#interactive中,您可以执行以下操作:

#r "MyDllName.dll"
open MyNamespace

// Call the constructor to get a new form, then show it
let form = Form1()
form.Show()

// Call whatever public method you want
form.MyMethodThatIWantToUse()    
Run Code Online (Sandbox Code Playgroud)

  • 是的.刚发现它.一个人手动将调试器附加到fsi.exe. (3认同)

nie*_*ras 5

您还可以添加:

Debugger.Launch()
Run Code Online (Sandbox Code Playgroud)

到脚本.这将打开一个对话框,询问使用哪个调试器.例如,您可以使用与用于执行脚本的视觉工作室实例相同的视觉工作室实例.