首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在创建属性时使用AttributeUsage AllowMultiple?

为什么要在创建属性时使用AttributeUsage AllowMultiple?
EN

Stack Overflow用户
提问于 2010-01-07 09:43:06
回答 5查看 11.4K关注 0票数 18

根据我正在阅读的一本书,AttributeUsageAllowMultiple公共属性指定:

...whether目标可以应用该属性的多个实例。

为什么我想/不想使用这个?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-07 09:48:09

属性是元数据。通常,您需要使用属性来修饰成员或类型,以便跟踪有关它的某些信息。

例如,PropertyGrid使用DescriptionAttribute来标记属性的描述:

代码语言:javascript
复制
[Description("This is my property")]
public int MyProperty { get; set; }

大多数情况下,拥有多个描述是没有意义的。

但是,一个特定属性多次使用也是有意义的。在这种情况下,您可能希望将属性设置为允许将其自身的多个实例标记到同一属性。

(并不是说我会这么做,但是...)假设您创建了一个自定义属性来跟踪类的主要更改。您可能希望为每个主要更改列出以下内容:

代码语言:javascript
复制
[Changes(Version=1.1, Change="Added Foo Feature")]
[Changes(Version=2.0, Change="Added Bar Feature")]
public class MyClass
{
    // ...
票数 24
EN

Stack Overflow用户

发布于 2010-01-07 09:46:37

这个例子可能有点做作,但希望它能让人明白这一点。

代码语言:javascript
复制
[Convertable(typeof(Int32)), Convertable(typeof(Double))]
public class Test
{

}
票数 5
EN

Stack Overflow用户

发布于 2010-01-07 09:47:40

这取决于属性是什么。

例如,您可以创建一个属性,将一个类标记为依赖于某物,并且可以允许多个依赖项。

关于一个具体的例子,请看SuppressMessage,它抑制了代码分析警告。一个成员可以有多个您可能希望取消显示的警告。

另一个例子是WebResource;一个程序集可以包含多个资源。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2017661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档