在 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/

10-11 04:22