在我正在查看的 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/