根据我正在阅读的一本书,AttributeUsage的AllowMultiple公共属性指定:
...whether目标可以应用该属性的多个实例。
为什么我想/不想使用这个?
发布于 2010-01-07 09:48:09
属性是元数据。通常,您需要使用属性来修饰成员或类型,以便跟踪有关它的某些信息。
例如,PropertyGrid使用DescriptionAttribute来标记属性的描述:
[Description("This is my property")]
public int MyProperty { get; set; }大多数情况下,拥有多个描述是没有意义的。
但是,一个特定属性多次使用也是有意义的。在这种情况下,您可能希望将属性设置为允许将其自身的多个实例标记到同一属性。
(并不是说我会这么做,但是...)假设您创建了一个自定义属性来跟踪类的主要更改。您可能希望为每个主要更改列出以下内容:
[Changes(Version=1.1, Change="Added Foo Feature")]
[Changes(Version=2.0, Change="Added Bar Feature")]
public class MyClass
{
// ...发布于 2010-01-07 09:46:37
这个例子可能有点做作,但希望它能让人明白这一点。
[Convertable(typeof(Int32)), Convertable(typeof(Double))]
public class Test
{
}发布于 2010-01-07 09:47:40
这取决于属性是什么。
例如,您可以创建一个属性,将一个类标记为依赖于某物,并且可以允许多个依赖项。
关于一个具体的例子,请看SuppressMessage,它抑制了代码分析警告。一个成员可以有多个您可能希望取消显示的警告。
另一个例子是WebResource;一个程序集可以包含多个资源。
https://stackoverflow.com/questions/2017661
复制相似问题