[英]How do F# types transfer over to C#?
如果在F#中我有以下方法:
drawBox
drawSphere
paintImage
它们会被转移到C#,完全一样吗?
如果是这种情况,那么它不会破坏C#中的命名约定,其中方法应该是PascalCase吗?
或者我应该在F#中使用PascalCase来解决这个问题吗?
您应该遵循F#组件设计指南 。
值得注意的部分是:
invalidArg
),用于“标准集合函数”(例如List.map
)。 在这两种情况下,函数名称的作用与语言中的关键字非常相似。 切片的另一种方法:
正如其他人已经指出的那样,编译成员的名称与您在F#代码中编写的名称完全相同。 通常,在声明类时遵循标准C#命名约定是个好主意。 在声明F#模块时,您可以使用camelCase
(特别是针对F#用户的模块)或PascalCase
如果您想在C#中使用它们)。
此外,还有一个技巧可以使用(这在F#核心库中用于List.map
等实际编译为List.Map
)。 您可以使用CompiledName
属性在已编译的版本中指定名称:
module Bar =
[<CompiledName("Foo")>]
let foo a = a + 1
使用统一的命名约定可能更好,但是如果你想为F#用户保留一个漂亮的短名称,为C#用户保留标准的.NET名称,这是一个有趣的选择。
类型方法名称在F#和C#中都是相同的。 如果你想在C#中使用PascalCase - 你应该在F#中使用这个命名约定,与camelCase相同。
命名约定适用于人类。 编译器和运行时实际上并不关心每个变量名是否完全不可读,它们仍然可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.