在C#中,您可能会看到以下内容:
[<DllImport("myUnmanagedDLL.dll")>]
Run Code Online (Sandbox Code Playgroud)
或类似的行(但没有大于/小于符号):
[assembly: AssemblyTitle("MyProject")]
Run Code Online (Sandbox Code Playgroud)
我知道第一个被称为属性(它有gt和lt标志),可用于向方法,类型等添加一种元数据,但第二种语法是什么意思?我正在尝试将这种语法翻译成F# - 即,这一行:
[MonoMac.Foundation.Register("AppDelegate")]
Run Code Online (Sandbox Code Playgroud)
但是第二种语法是什么意思呢?
这意味着该属性正在应用于程序集,而不是应用于类型(类或结构)或成员.
在F#中,您尝试翻译的行应为:
[<MonoMac.Foundation.Register("AppDelegate")>]
Run Code Online (Sandbox Code Playgroud)
如果没有看到更多内容,则无法确定应该应用的位置(类型,方法等).我怀疑这会type在F#中继续你的定义,因为这通常用在C#类上.
另外,[<DllImport("myUnmanagedDLL.dll")>]C#是无效的 - 这是F#语法.C#[Attribute]用于属性(和VB.Net使用<Attribute>).
如果它在F#中有用,则程序集级别属性通常应用于空do块:
[<assembly: AssemblyTitle("MyProject")>]
do ()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |