f# - 是否可以在 F# 中组合多个属性?

标签 f# attributes

我试图找出这个 C# 属性声明的 F# 等价物:

[
   ComImport(),
   InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
   Guid("000214EE-0000-0000-C000-000000000046")
]

我可以做到这一点,它编译得很好:
[<ComImport>]
[<InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>]
[<Guid("000214EE-0000-0000-C000-000000000046")>]

但我现在很好奇——是否可以在 F# 中组合多个属性?当我为前两个属性尝试这样的事情时:
[<ComImport>,<InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>]

我收到 FS0010 错误。也试过这个:
[<ComImport , InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>]

结果一样。

这是可能的,如果是,正确的语法是什么?

最佳答案

是的。

[<
  ComImport; 
  InterfaceType(ComInterfaceType.InterfaceIsIUnknown); 
  Guid("000214EE-0000-0000-C000-000000000046")
>]

关于f# - 是否可以在 F# 中组合多个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620712/

相关文章:

c# - 将 C# 属性应用于扩展方法以像操作过滤器一样管理扩展方法的执行

java - session 属性从过滤器传递到 servlet 的机制是什么?

javascript - 显示具有事件目标的对象的属性

f# - 如何在 F# 中有条件地包装 sprintf?

F# - 创建委托(delegate)

javascript - jQuery:hasClass 部分匹配

c# - 我可以在分部类中定义属性,然后在另一个分部类中用属性标记它们吗?

c# - F# 在管道运算符 aka C# LINQ let 中使用临时变量

F# 在 Async.Catch 上继续

c# - C# 中的委托(delegate)和 F# 中作为第一类值的函数有什么区别?