我有一个带有 F# 项目参考的小型 C# 控制台应用程序。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var number = FS.DecodeRomanNumeral("XV");
Console.WriteLine("Hello World!");
}
}
}
在 F# 项目中,我有以下代码:
module FS
open System
/// Decodes a Roman Number string to a int number // https://twitter.com/nikoloz_p/status/1421218836896960515
let DecodeRomanNumeral RomanNumeral =
let DigitToNumber = function
| 'I' -> 1
| 'V' -> 5
| 'X' -> 10
| 'L' -> 50
| 'C' -> 100
| 'D' -> 500
| 'M' -> 1000
| c -> failwith (sprintf "Invalid digit %c" c)
let rec sum' Numbers =
match Numbers with
| [] -> 0
| x::y::rest when x < y -> y - x + sum' rest
| x::rest -> x + sum' rest
RomanNumeral
|> Seq.map DigitToNumber
|> Seq.toList
|> sum'
当我单击DecodeRomanNumeral单词并按 F12 时,它会显示 Disassembler 窗口,而不是引用项目中的实际 F# 源代码。我注意到此行为发生在 Visual Studio 2019(版本 16.10.4)和 Visual Studio 2022(版本 17.0.0 Preview 2.1)中
我仔细检查并在 C# 项目上添加了一个项目引用,引用了 F#
当我按F12(转到定义)时,我需要它从 C# 转到实际的 F# 代码。
怎么做?