gpt4 book ai didi

c# - C#项目中的F#类型扩展:是否缺少System.Runtime.CompilerServices.Extension?

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:01 24 4
gpt4 key购买 nike

我正在研究F#,这非常令人着迷。我正在尝试将Optional Types和C#结合起来,例如here。非常有趣的事情...但是我想念一些重要的事情:

#light
namespace MyFSharp

// C# way
[<System.Runtime.CompilerServices.Extension>]
module ExtensionMethods =
[<System.Runtime.CompilerServices.Extension>]
let Great(s : System.String) = "Great"


using System;
using MyFSharp; // reference the F# dll
class Program
{
static void Main(string[] args)
{
var s = "foo";
//s.Awesome(); // no
Console.WriteLine(s.Great()); // yes
}
}


这很简单-我想这对我来说还为时过早...我得到:

The type 'Extension' is not defined 


也许还为时过早...但是我不明白为什么找不到它。

谢谢,
马吕斯

最佳答案

扩展方法在静态类中必须是静态的。 F#是否真的这样发出它?如果没有,那么您就不走运了。

更新资料

我只是尝试过,它似乎发出了静态的类和方法。我遇到了与您相同的错误,但是通过编译为:


  fsc -r System.Core test.fs


然后在Reflector中查看程序集的输出,看起来一切正常,应该可以工作。

关于c# - C#项目中的F#类型扩展:是否缺少System.Runtime.CompilerServices.Extension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com