首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >覆盖派生类的自定义属性

覆盖派生类的自定义属性
EN

Stack Overflow用户
提问于 2012-05-28 23:31:50
回答 3查看 8.4K关注 0票数 15

我们有一个自定义属性

代码语言:javascript
运行
复制
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class CustomDesignerAttribute: Attribute

然后我们就有了一个用这个属性修饰的基类

代码语言:javascript
运行
复制
[CustomDesigner(someKey, someValue)]
public class BaseClass

然后我们有一个从这个类派生的类,用相同的属性装饰(具有相同的键,不同的值)

代码语言:javascript
运行
复制
[CustomDesigner(someKey, someOtherValue)]
public class ChildClass : BaseClass

有没有可能ChildClass不会创建重复的属性,而是覆盖现有键的值(覆盖整个父属性)?如果不是,如果ChildClass没有定义自己的默认值,那么从BaseClass获取默认值的最佳模式是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2012-05-28 23:43:16

不,无法覆盖现有属性。

属性是附加到对象(程序集、类、方法、变量等)的元数据,因此它们始终保持这种连接。

如果您想在基类中给出一个默认的“行为”,并在一些派生类中覆盖它,您必须检查GetCustomAttributes()返回的所有属性,以便只使用派生最多的属性(列表中的第一个)。

票数 8
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10787082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档