属性クラスの継承はC#でどのように機能しますか? 明確にするために、私は属性クラス自体(つまり、の基本クラスSystem.Attributes
)の継承について話しているのであって、たまたまそれらを属性として持つクラスではありません。
なんらかの理由で、これについて何も見つけられないようです (私の検索では、常に別の意味が表示されます)。
たとえば、AttributeA
を拡張するクラスがある場合System.Attribute
:
AttributeA
withのサブクラスを個別にマークする必要がありますか[AttributeUsage()]
。(System.AttributeUsage
の継承はであるtrue
ため、私はそうしないと思います。)AllowMultiple=false
onを使用すると、for 属性のサブクラスを複数持つことができなくAttributeUsage
なりますか?AttributeA
AttributeA
編集:
プログラマーはコードを読むことしかできません。
[AttributeUsage(AttributeTargets.Class, AllowMultiple=false)]
class AttributeA
{ }
class AttributeB : AttributeA
{ }
class AttributeC : AttributeA
{ }
[AttributeB]
[AttributeC]
class Foo
{ }
これは機能しますか?