使用Microsoft.NET为其他用途提供的属性是否合适?或者我应该创建自己的属性吗?
例如,我经常看到人们使用DescriptionAttribute
枚举作为“友好名称”。虽然,我的理解是,DescriptionAttribute
旨在由IDE使用,并且出于这个原因。
另一个例子是使用DefaultAttribute
通过反射在构造过程中设置属性的所有默认值。
那么,在最佳实践中,以通常无意的方式重用属性是否可以接受?
答案 0 :(得分:1)
就个人而言,我不会重复使用属性。我创建自己的自定义。
这可以防止我使用属性,然后当某人以我没想到的方式使用我的类时会出现意外行为。
答案 1 :(得分:1)
DefaultAttribute和DescriptionAttribute由“propertygrid”控件使用,该控件是visual studio designer中使用的控件。也可以在你自己的代码中使用这个控件,然后使用这些属性
是有意义的答案 2 :(得分:0)
使用MS提供的定义,并在不符合官方定义时创建自己的定义。可能听起来很愚蠢以创建你自己的(不是创建一个新的很长),但是如果有人来阅读你的代码并且没有阅读20页的手册,那么我们的选择使用官方属性",他会对所发生的事情感到困惑。
此外,许多.NET类都会检查这些属性。如果你滥用它们,你可能会遇到非常奇怪的行为。
答案 3 :(得分:0)
微软自己发布的最佳做法对此主题没什么好说的,DescriptionAttribute MSDN Page上的代码用法清楚表明这个内置属性是以其他方式使用的。我通常认为在项目中添加额外含义非常危险。这被称为“部落知识”,是与他人合作时误解的主要方式之一。
如果你有一个.NET框架所涵盖的用例,真棒 - 你应该首先使用那里的内容。但如果您不确定,最好只创建自己的。