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