8
タイプにパブリックリテラル(C#のパブリックconst)を定義する方法はありますか?明らかに、型のバインディングはプライベートでなければならず、Literal属性はメンバーには適用できません。F# - パブリックリテラル
タイプにパブリックリテラル(C#のパブリックconst)を定義する方法はありますか?明らかに、型のバインディングはプライベートでなければならず、Literal属性はメンバーには適用できません。F# - パブリックリテラル
[<リテラル>]属性を使用してください。これは、あなたが探している魔法です。さらに、リテラル属性を文字列などの値に置くと、パターンマッチングで使用することができます。例:
// BAD - introduces new value named 'Name'
let Name = "Chris Smith"
match Console.ReadLine() with
| Name -> printfn "You entered my name! %s" Name
| _ -> printfn "You didn't enter my name"
// Good - uses the literal value, matches against the value Name
[<Literal>]
let NameLiteral = "Chris Smith"
match Console.ReadLine() with
| NameLiteral -> "You entered my name!"
| _ -> printfn "You didn't enter my name.
編集:私は、カスタムクラス(モジュールではありません)にこれらを入れる方法を指摘しています。あなたがF#内でpublic const/public readonlyフィールドを公開できるかどうかはわかりませんが、私はそれを調べます。
ありがとうございました。はい、キーは「公開」です。 – Daniel
この回答が質問に回答しないため、この回答が投票され続ける理由がわかりません。 – Daniel
私の理論は、質問に答えていなくても面白いものが見つかると、投票を頻繁に行うということです。 – gradbot