c#-to-f#相关内容

Mono:有 System.Tuple 吗?

我正在尝试在 Mono 中的 C# 和 F# 之间进行一些互操作.Mono C# 中有 System.Tuple 吗?我可以在 Mono.CSharp 中看到那个,但这似乎与 F# (a' * b') 的类型不同.所以, (a) Mono C# 中是否有 System.Tuple或 (b) Mono C# 和 F# 中的元组之间是否存在强制转换? 解决方案 是的,Mono 支持 Tu ..
发布时间:2022-01-23 15:05:06 C#/.NET

C# 异步/等待方法到 F#?

我正在尝试学习 F#,并且正在将一些 C# 代码转换为 F#. 我有以下 C# 方法: 公共异步任务GetFooAsync(byte[] 内容){使用 (var stream = new MemoryStream(content)){返回等待 bar.GetFooAsync(stream);}} 其中 bar 是一些私有字段,GetFooAsync 返回一个 Task. 这如何转化 ..
发布时间:2022-01-05 10:26:48 其他开发

代理/邮箱处理器在 C# 中使用新的 async/await

这个问题结合了我不完全理解的两个主题 通读paper 关于 F# 中的异步,我遇到了 Agents/MailboxProcessors 的话题,它可以用来实现反应式状态机.C#5 中新的 async/await 功能是否可以用于在 C# 中实现类似的东西,或者是否已经有类似的东西更适合? 解决方案 通过一些非常可怕的黑客攻击,您可以使用 async 使用 C# 中的 MailboxP ..
发布时间:2022-01-05 10:17:35 C#/.NET

根据调度程序将 async-await C# 代码转换为 F#

我想知道这是否是一个过于宽泛的问题,但最近我让自己遇到了一段代码,我想确定如何从 C# 转换为正确的 F#.旅程从这里 (1) 开始(TPL-F# 交互的原始问题),以及继续这里 (2) (我正在考虑将一些示例代码翻译成 F#). 示例代码太长,无法在此重现,但有趣的功能是ActivateAsync、RefreshHubs 和AddHub.特别有趣的地方是 AddHub 有一个priv ..
发布时间:2022-01-05 10:16:11 C#/.NET

F# 相当于 C# 的“out"

我正在将 C# 库重写为 F#,我需要翻译以下代码 bool 成功;instance.GetValue(0x10, out 成功); F# 中 out 关键字的等价物是什么? 解决方案 wasatz 和 Max Malook 的回答都不完整.使用 out 参数调用方法有三种方式.第二种和第三种方式也适用于 ref 参数. 对于示例,假设以下类型: open System.Run ..
发布时间:2022-01-05 10:12:34 其他开发

C# 和 F# 转换 - 特别是“as"关键字

在 C# 中,我可以: var castValue = inputValue as Type1 在 F# 中,我可以: let staticValue = inputValue :>类型1让 dynamicValue = inputValue :?>类型1 但它们都不是 C# 的关键字 as 的等价物. 我想我需要为 F# 中的等价物做一个匹配表达式 将 inputValue 与| ..
发布时间:2022-01-05 09:53:10 C#/.NET

F# 区分联合使用与 C#

从 C# 中使用 F# 区分联合的最佳方法是什么? 这个问题我已经研究了一段时间了,我可能找到了最简单的方法,但由于它相当复杂,可能还有一些我没有看到的东西...... 有一个受歧视的工会,例如: type Shape =|浮动矩形 * 浮动|浮圈 我发现 C# 的用法是(避免使用 vars,使类型明显): Shape circle = Shape.NewCircle(5.0); ..
发布时间:2022-01-05 09:52:37 C#/.NET

将 c# 委托与 f# 函数结合使用

我试图从 f# 调用 c# 函数,其中 c# 函数接受一个函数(委托?)作为参数,我需要这个参数作为 f# 函数.例如: 示例 C# public static void function_1(double x, ref double y){y = Math.Exp(x);}主要的(){状态;call_func(s, function_1)} 所以,call_func 有一个 void ..
发布时间:2022-01-05 09:46:54 其他开发

如何在 Visual Studio 中组织大型项目(> 300 个类)的 F# 源代码?

在 C# 中,您可以将文件放在与其命名空间相对应的文件夹中,并在解决方案资源管理器中查看. 在 F# 中,似乎我必须将所有内容都放在简单的专门排序的列表中以进行编译.当我达到大约 300 个类的规模时,它会变得有点混乱和混乱,我开始羡慕 C#,并认为这可能是类型推断的代价. 是否有比拆分为多个程序集更好的选择? 从 F# 编译器源来看,它们采用的路径是它们所采用的路线,但我有相当 ..
发布时间:2022-01-05 09:38:26 其他开发

方法链 vs |>管道操作员

所以我有以下代码: //在 http://fsharp.net 上了解有关 F# 的更多信息开放系统打开 System.Linq打开 Microsoft.FSharp.Collections让 a = [1;2;3;4;54;9]让 c = a |>List.map(fun(x) -> x*3) |>List.filter(fun(x) -> x > 10)让 d = a.Select(fun( ..
发布时间:2021-12-23 15:39:47 其他开发

使用F#和Open XML SDK读取Excel文件中的单元格内容

我无法编译以下代码,这些代码是从C#转换而来的. 编译器产生此错误:错误FS0010:在实现文件中或此之前的结构化构造不完整.在这一点或其他标记之前或之前预期的不完整结构化构造. //组件开放系统打开System.Linq打开System.Data打开System.Windows打开DocumentFormat.OpenXml//也从nuget安装DocumentFormat.OpenXm ..
发布时间:2021-05-06 20:01:32 其他开发

是否可以使用F#中的LINQ,如何使用?

为了访问某些SharePoint数据,我使用Microsoft.SharePoint.Client库,该库公开以下api.C#(链接)中有示例用法以下代码段: ClientContext context = new ClientContext("http://SiteUrl");Web web = context.Web;context.Load(web.Lists,列表=>list.Incl ..
发布时间:2021-04-18 20:42:03 C#/.NET

为什么F#的默认set集合排序而C#的默认集合没有排序?

从C#世界迁移到F#(最常见的)心态时,我发现了这种有趣的区别. 在C#的OOP& mutable世界中,默认的集合集合似乎是排序集. 但是,在F#的世界中,基本的set已被排序,因为它需要用于实现等式和比较的元素类型.有什么具体原因吗?为什么在该语言的主要集合中不设置无序集合? 作为一个旁注,我想知道是否有可能有一个不允许重复的set集合,但是在丢弃某些重复元素时优先于某些元素 ..
发布时间:2020-11-03 00:42:50 C#/.NET

如何从f#使用c#结构

在f#中使用c#结构的语法是什么?如何分配字段值? 谢谢! 更新: 看起来像我可以声明变量本身可变,然后使用 这是正确的做法。 let mutable someStruct = CallSo ..
发布时间:2020-06-07 18:59:53 其他开发

Quartz.NET和F#-SystemTime和KeyMatcher

我正在尝试在F#中使用Quartz.NET,但遇到了一些问题,尽管Quartz.NET在F#中可用,但似乎没有太多文档,而且我已经 我目前遇到的一个问题是设置SystemTime,如该问题所示, Quartz.net +使用SystemTime.UtcNow进行测试。 我可能是错的,但是我认为F#中的代码应该是: SystemTime现在= fun()-> DateTime( ..
发布时间:2020-06-07 18:59:50 其他开发

将复杂的Map数据结构转换为F#

我对F#语言非常陌生,更不用说功能编程了,我在实现Map数据结构时遇到了麻烦。此Map的C#类型等效项为: var map = new Dictionary(); 我试图自己实现并在线搜索,但是我对这种语言的缺乏经验让我 有人能给我看吗? 一 ..
发布时间:2020-06-07 18:59:46 其他开发

C#到F#类的过渡

我很久以前是C#开发人员。 我学习F#,并将其用于科学目的/研究/认可工作。我发现它的许多功能强大,但我却在努力编写类,这是我知道在C#中做得很好的基本事情。 对我有什么帮助(以及社区)翻译以下C#代码。 class CoolAttribute:属性 { } class BaseClass { public BaseClass(int zzz) { // z ..
发布时间:2020-06-07 18:59:43 其他开发