判別共用体のUnionCaseにAttributeを付与する
必要に迫られたので調べた。
open System // AttributeTargets.Property以外はエラー [<AttributeUsage(AttributeTargets.Property, Inherited = false); Sealed>] type TestAttribute() = inherit Attribute() // fieldがない場合: // AクラスのB getプロパティにつく type A = | [<Test>] B // fieldがない場合: // CクラスのNewDメソッドにつく type C = | [<Test>] D of int
struct unionの場合も特に違いはなし。
AttributeTargets.Property
なのにメソッドかよーみたいな気持ちはありつつ、でもまぁそこしかないかみたいな。