c# - 什么是 C# 命名参数的 F# 等价物?

标签 c# .net f# yaml

在我正在查看的 DotNetYaml 示例代码中,有一个 C# 构造:

var deserializer = new Deserializer(namingConvention: new CamelCaseNamingConvention());
var order = deserializer.Deserialize<Order>(input);

等效的 F# 代码是什么?我试过了

let deserializer = new Deserializer(namingConvention=new CamelCaseNamingConvention())
deserializer.Deserialize<Meta>(input)

最佳答案

如果您有一个定义可选参数的 C# 库,那么您可以使用您在问题中使用的语法。为了快速说明情况,我将以下 C# 代码编译为一个库:

using System;

namespace Demo {
  public class MyClass {
    public static void Foo(int first, string second = "foo", string third = "bar") { }
  }
}

您可以引用它并从 F# 中使用它,如下所示:

open Demo
MyClass.Foo(1, third="hi")

我尝试使用 YamlDotNet 来做到这一点,我猜它是您正在使用的库,但我收到一个错误,指出 Deserializer 类没有 namingConvention 作为参数,所以我的猜测是您使用的库版本可能与您想象的不同(或者,我对您使用的库的猜测是错误的......) .

关于c# - 什么是 C# 命名参数的 F# 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51241550/

相关文章:

.net - 我可以覆盖另一个用户当前打开的文件吗

c# - 将组合框值转换为另一种形式

wpf - 为什么程序退出时不触发 OnSessionEnding 事件?

f# - 当达到条件时获取无限序列中的数字计数

c# - 如何从 .NET 类中以编程方式访问服务器级 IIS 连接设置?

c# - IOException 使用 .NET 将大文件从 UNC 路径读取到字节数组中

c# - 格式化 XML 字符串以打印友好的 XML 字符串

c# - 是否可以搜索枚举类型的值列表以查看是否存在 int?

f# - 参数化/提取有区别的联合案例

c# - 编写一个在 EF Core 中不区分大小写的搜索查询?