将Microsoft.NET提供的属性用于其他用途是否合适,或者我是否应该创建自己的属性?
例如,我经常看到人们将枚举的DescriptionAttribute用作“友好名称”。尽管如此,我的理解是DescriptionAttribute是由集成开发环境使用的,并且出于这个原因。
另一个例子是在构造过程中通过反射使用DefaultAttribute来设置属性的所有默认值。
那么,在最佳实践中,以非正常预期的方式重用属性是可以接受的吗?
发布于 2012-10-24 02:46:58
就我个人而言,我不会重用属性。我创建了自己的自定义脚本。
这防止了我使用属性,然后在将来有人以我没有预料到的方式使用我的类时获得意外的行为。
发布于 2012-10-24 02:47:04
DefaultAttribute和DescriptionAttribute由"propertygrid“控件使用,该控件是visual studio设计器中使用的控件。也可以在您自己的代码中使用此控件,然后使用这些属性就很有意义
发布于 2012-10-24 02:47:34
使用微软提供的定义,当它们不符合官方定义时创建自己的定义。创建自己的代码可能听起来很愚蠢(并不是说创建一个新的代码真的很长),但是如果有人来阅读您的代码,而没有阅读标题为“我们的官方属性的替代用法”的20页手册,他会对发生的事情感到困惑。
除此之外,很多.NET类都会检查这些属性。如果你滥用它们,你可能会有非常奇怪的行为。
https://stackoverflow.com/questions/13037102
复制相似问题