C#属性类的继承

Pau*_*per 6 .net c# inheritance custom-attributes

属性类的继承如何在C#中起作用?为了澄清,我说的是属性类本身的继承(即基类System.Attributes),而不是任何碰巧将它们作为属性的类.

出于某种原因,我似乎无法找到任何东西(我的搜索总是出现其他含义).

例如,如果a有一个AttributeA扩展的类System.Attribute:

  1. 我必须单独标记的子AttributeA[AttributeUsage()].(既然System.AttributeUsage继承了true,我认为不会.)

  2. AllowMultiple=falseAttributeUsageAttributeA阻止我有多个子类AttributeA的属性?

编辑:

程序员只能读代码.

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

class AttributeB : AttributeA
{ }

class AttributeC : AttributeA
{ }

[AttributeB]
[AttributeC]
class Foo
{ }
Run Code Online (Sandbox Code Playgroud)

这有用吗?

小智 0

属性用法是针对使用属性的类。

例如,如果您使用 AttributeA 标记类 A,并且类 B 是 A 的子类,则如果 AttributeA AttributeUsage 的继承为 true,则不需要使用 AttributeB 标记类 B。