Joa*_*nge 5 c# f# naming-conventions
如果在F#中我有以下方法:
drawBox
drawSphere
paintImage
Run Code Online (Sandbox Code Playgroud)
它们会被转移到C#,完全一样吗?
如果是这种情况,那么它不会破坏C#中的命名约定,其中方法应该是PascalCase吗?
或者我应该在F#中使用PascalCase来解决这个问题吗?
正如其他人已经指出的那样,编译成员的名称与您在F#代码中编写的名称完全相同.通常,在声明类时遵循标准C#命名约定是个好主意.声明F#模块时,您可以使用camelCase(特别是针对F#用户的模块),或者PascalCase如果您想使用C#模块.
此外,还有一个技巧可以使用(这在F#核心库中用于List.map实际编译的函数List.Map).您可以使用该CompiledName属性在编译版本中指定名称:
module Bar =
[<CompiledName("Foo")>]
let foo a = a + 1
Run Code Online (Sandbox Code Playgroud)
使用统一的命名约定可能更好,但是如果你想为F#用户保留一个漂亮的短名称,为C#用户保留标准的.NET名称,这是一个有趣的选择.
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |