你认为C#属性(或类似的机制)是个好主意还是你不鼓励使用它们?

Rob*_*zak 3 c# attributes custom-attributes

我基于过去4或5年使用C#属性的许多设计和框架.

但最近我看到许多人开始不鼓励他们使用或改变他们的框架以减少他们的需要或使用.

我发现它们是天赐之物,但现在我开始怀疑自己错过了什么.

澄清:使用约定优于配置正成为遵循ORM领域的主要原则.此区域是否可以使用配置文件(XML)映射字段,使用属性或具有直接映射到数据库表中字段的通用命名约定.我没有引用任何引用,但我已经阅读了一些反对添加另一个属性的反对意见.

但我觉得在我刚刚列出的三个选项中,属性仍然是最有意义的.Config文件难以维护,常见的命名约定将您与数据库字段的实现联系起来.属性被准确放置在需要它们的位置,并且实现可以在不断开其使用位置的情况下进行更改.

Jar*_*Par 7

这是一个难以回答的问题.属性是另一种语言功能,如果使用正确但功能非常强大但确实存在滥用的可能性.我从未见过一个令人信服的理由完全抛弃属性的使用,并且没有理由认为它们是一个坏主意.

事实上恰恰相反.属性允许将特定于框架的信息添加到元数据中.通过类型层次结构无法轻易表达的信息.这大大增加了使用属性的框架的功能.

我当然看到了一个或两个实施,人们滥用它们但没什么了不起的.你可以说得更详细点吗?是否有您正在讨论的特定属性/框架.


Ada*_*son 5

这是一个相当广泛的问题,例如“我应该把奶酪放在砂锅里吗”;两者的答案都是“这取决于您在做什么”。

如果您大量使用addributes,并且几乎像声明式编程范例那样使用它们,那么您可能会在此过程中遇到麻烦。任何人都在猜测,这是从某种程度上的放缓反映出来的,还是仅仅是总体的可维护性。

就像其他所有内容一样……在适当时使用它们,使您的代码更高效或更易读。不要为了使用它们而使用它们,也不要为了丢弃它们而放弃它们。

  • +1,我无法停止对“砂锅中的奶酪”的评论发笑。你从某个地方得到的吗? (2认同)