在 C# 中,您可能会看到以下内容:
[<DllImport("myUnmanagedDLL.dll")>]
或类似的行(但没有大于/小于符号):
[assembly: AssemblyTitle("MyProject")]
我知道第一个称为属性(它有 gt 和 lt 符号),可用于向方法、类型等添加某种元数据,但第二个的语法是什么意思?我正在尝试将具有此语法的某些内容转换为 F#——即这一行:
[MonoMac.Foundation.Register("AppDelegate")]
最佳答案
这意味着该特性将应用于程序集,而不是应用于类型(类或结构)或成员。
在 F# 中,您尝试翻译的行应该是:
[<MonoMac.Foundation.Register("AppDelegate")>]
没有看到更多,就不可能知道应该在哪里应用它(类型、方法等)。不过,我怀疑这会在 F# 中的
type
定义中进行,因为这通常用于 C# 类。附带说明一下,
[<DllImport("myUnmanagedDLL.dll")>]
不是有效的 C# - 这是 F# 语法。 C# 使用 [Attribute]
作为属性(而 VB.Net 使用 <Attribute>
)。关于C#方括号且大于/小于,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11832655/