首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等效于C#类型参数中的F# _通配符

等效于C#类型参数中的F# _通配符
EN

Stack Overflow用户
提问于 2020-10-18 02:04:30
回答 1查看 62关注 0票数 2

F#允许您让编译器计算出类型参数应该是什么。

代码语言:javascript
运行
复制
let foo = [| 1 |]
let bar = Array.head<_> foo

(您实际上永远不会这样做,您会丢弃参数,但这只是说明性的)。

在C#中有没有等同的东西?

问题是……我有接受30个类型参数的F#代码,从F#调用这段代码是微不足道的,编译器只是解决它(如果它不能,那么指定1个参数并通配符将很好地提示编译器做什么),从C#调用这段代码是可怕的,因为你必须费力地计算出参数(如果你完全省略它们,它顽固地拒绝推断它们)。

附注:

即使是像让集成开发环境在F#代码中显式地指定这些参数,然后可以大量粘贴到C#代码中这样的讨厌的技巧也会有所帮助。

(我理解为什么C#的推理较弱,它是生活,但我的例子实际上是相当机械的)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-18 02:24:07

实际上我已经解决了这个问题。

如果我用来自特定类型的调用包装超泛型函数,并将其写在F#中,那么我就可以从我的C#代码中调用这个函数,它根本不是类型参数,而不需要花费15分钟来尝试确定类型是什么。

代价是拥有一个外部F#库的F#包装器,但是代码很简单。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64405697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档