我是否应该出于其他原因重用Microsoft.NET属性,还是应该创建自己的属性?

时间:2012-10-23 18:45:00

标签: c# .net attributes

使用Microsoft.NET为其他用途提供的属性是否合适?或者我应该创建自己的属性吗?

例如,我经常看到人们使用DescriptionAttribute枚举作为“友好名称”。虽然,我的理解是,DescriptionAttribute旨在由IDE使用,并且出于这个原因。

另一个例子是使用DefaultAttribute通过反射在构造过程中设置属性的所有默认值。

那么,在最佳实践中,以通常无意的方式重用属性是否可以接受?

4 个答案:

答案 0 :(得分:1)

就个人而言,我不会重复使用属性。我创建自己的自定义。

这可以防止我使用属性,然后当某人以我没想到的方式使用我的类时会出现意外行为。

答案 1 :(得分:1)

DefaultAttribute和DescriptionAttribute由“propertygrid”控件使用,该控件是visual studio designer中使用的控件。也可以在你自己的代码中使用这个控件,然后使用这些属性

是有意义的

答案 2 :(得分:0)

使用MS提供的定义,并在不符合官方定义时创建自己的定义。可能听起来很愚蠢以创建你自己的(不是创建一个新的很长),但是如果有人来阅读你的代码并且没有阅读20页的手册,那么我们的选择使用官方属性",他会对所发生的事情感到困惑。

此外,许多.NET类都会检查这些属性。如果你滥用它们,你可能会遇到非常奇怪的行为。

答案 3 :(得分:0)

微软自己发布的最佳做法对此主题没什么好说的,DescriptionAttribute MSDN Page上的代码用法清楚表明这个内置属性是以其他方式使用的。我通常认为在项目中添加额外含义非常危险。这被称为“部落知识”,是与他人合作时误解的主要方式之一。

如果你有一个.NET框架所涵盖的用例,真棒 - 你应该首先使用那里的内容。但如果您不确定,最好只创建自己的。