百科问答小站 logo
百科问答小站 font logo



F#内的函数怎样和C#的Action互相转换? 第1页

  

user avatar   kinniku 网友的相关建议: 
      

第一问题,你参数用了 「fun _」,我编译器怎么知道你的T是杜蕾斯还是冈本?

如果你指定了fun 的参数类型,譬如 「fun () 」不用加前面Action也可以。

第二个问题:

为什么Action<T>(T->unit)可以转成Action<T>?

这是Action的基本用法、真实用法,参数是个Lambda,试想想,不能转的话F#怎么创建一个可以用的Action?当你用fun 代替Action作为参数传入时候,实际上是编译器自己给你加了Action外壳,不要本末倒置了。

忘了,谢邀。

======================================================================

补充资料:

Lambda 表达式(C# 编程指南)

F#里Lambda表达式的文本义应该等价于C#的,编译成FSharpFunc 还是委托,还是Expression,要依赖上下文推断,Action<T>(T->unit) 就是依照这个Lambda产生一个Action的意思。




  

相关话题

  学C#后还有必要学C语言吗? 
  网游通信协议如何防止封包篡改? 
  为什么在项目中要尽量避免使用浮点数,不使用浮点数,那该如何计算浮点数? 
  有没有什么工具可以帮助理解源代码的? 
  数学和编程中,「函数」的概念相同在哪里,不同在哪里? 
  为什么很多人都说使用微软技术的公司是小公司?是不是微软的技术入门简单? 
  参加第五届函数式编程分享会是什么体验? 
  C♯的反射要怎么给Type使用泛型? 
  C# 语言和 .NET 框架相比 Java、PHP、Python 等 web 开发技术有哪些优劣? 
  C++ 和 Java 同样是静态语言,为什么 Java 的代码提示可以做的十分强大? 

前一个讨论
如何教育孩子吃饭?
下一个讨论
为什么 CPU 的浮点运算能力比 GPU 差,为什么不提高 CPU 的浮点运算能力?





© 2025-05-15 - tinynew.org. All Rights Reserved.
© 2025-05-15 - tinynew.org. 保留所有权利