[英]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.