6

属性クラスの継承はC#でどのように機能しますか? 明確にするために、私は属性クラス自体(つまり、の基本クラスSystem.Attributes)の継承について話しているのであって、たまたまそれらを属性として持つクラスではありません。

なんらかの理由で、これについて何も見つけられないようです (私の検索では、常に別の意味が表示されます)。

たとえば、AttributeAを拡張するクラスがある場合System.Attribute:

  1. AttributeAwithのサブクラスを個別にマークする必要がありますか[AttributeUsage()]。(System.AttributeUsageの継承はであるtrueため、私はそうしないと思います。)

  2. AllowMultiple=falseonを使用すると、for 属性のサブクラスを複数持つことができなくAttributeUsageなりますか?AttributeAAttributeA

編集:

プログラマーはコードを読むことしかできません。

[AttributeUsage(AttributeTargets.Class, AllowMultiple=false)]
class AttributeA
{ }

class AttributeB : AttributeA
{ }

class AttributeC : AttributeA
{ }

[AttributeB]
[AttributeC]
class Foo
{ }

これは機能しますか?

4

3 に答える 3