You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#主程序中调用运行F#代码?(Rider/VS for Mac环境)

在C#主程序中调用F#代码(Rider/Visual Studio for Mac)

步骤1:构建解决方案结构

  • 打开Rider或Visual Studio for Mac,新建一个空白解决方案
  • 添加**控制台应用(C#)**作为主项目(存放你提供的MainClass代码)
  • 添加**类库(F#)**项目(存放F#业务代码)

步骤2:编写可被C#调用的F#代码

打开F#类库默认的Library1.fs文件,替换为以下代码(确保函数能被C#访问):

namespace FSharpLibrary

module FSharpFunctions =
    // 示例函数:执行F#输出逻辑并返回结果字符串
    let GetHelloMessage() =
        printfn "Hello, World from F#!" // F#原生打印
        "F#代码执行完成"

步骤3:C#项目引用F#类库

  • 在C#项目的「依赖项」上右键,选择「添加引用」
  • 在弹出的窗口中选择同一解决方案下的F#类库,确认添加

步骤4:修改C#主程序调用F#函数

更新你的C#代码,引入F#命名空间并调用函数:

using System;
using FSharpLibrary;

class MainClass
{
    public static void Main(string[] args)
    {
        // 调用F#模块中的函数
        Console.WriteLine(FSharpFunctions.GetHelloMessage());
    }
}

注:如果你的业务确实需要unsafe关键字,可以保留,不影响F#函数调用

终端编译运行的正确方式(避免报错)

如果用终端操作,需按顺序编译:

  1. 编译F#类库:
    dotnet build FSharpLibrary/FSharpLibrary.fsproj
    
  2. 编译并运行C#项目:
    dotnet run --project CSharpApp/CSharpApp.csproj
    

常见报错原因:未先编译F#类库、C#未正确引用F#项目、F#代码未通过命名空间/公开模块暴露函数

内容的提问来源于stack exchange,提问作者Red Mermaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:10:18