Как уже отмечали другие, имена скомпилированных членов точно такие же, как имена, которые вы написали в коде F #. В целом, при объявлении классов рекомендуется следовать стандартным соглашениям об именах C #. При объявлении модуля F # вы можете использовать camelCase
(особенно для модулей, предназначенных для пользователей F #) или PascalCase
, если вы хотите использовать их из C #.
Также есть один прием, который вы можете использовать (он используется в базовой библиотеке F # для таких функций, как List.map
, которые фактически скомпилированы как List.Map
). Вы можете использовать атрибут CompiledName
для указания имени в скомпилированной версии:
module Bar =
[<CompiledName("Foo")>]
let foo a = a + 1
Вероятно, лучше использовать унифицированное соглашение об именах, но если вы хотите сохранить хорошее короткое имя для пользователей F # и стандартное имя .NET для пользователей C #, это интересный вариант.