属性可以在C#中动态添加吗?

属性可以在C#中动态添加吗?

是否可以在运行时添加属性或在运行时更改属性的值?



白衣非少年
浏览 974回答 3
3回答

肥皂起泡泡

属性是静态元数据。程序集、模块、类型、成员、参数和返回值不是C#中的头等对象(例如,System.Type类只是一种类型的反射表示)。您可以为类型获取属性的实例,如果属性是可写的,则可以更改它们,但这不会影响属性,因为它被应用于类型。

慕侠2389804

这取决于你到底想要实现什么。这个System.ComponentModel.ypeDescriptorStuff可以用于向类型、属性和对象实例添加属性,并且它有一个限制,即您也必须使用它来检索这些属性。如果您正在编写使用这些属性的代码,并且可以在这些限制范围内生存,那么我肯定会建议您这样做。据我所知,PropertyGrid控件和VisualStudio设计图面是BCL中唯一消耗TypeDescriptor的东西。事实上,这就是他们真正需要做的事情的一半。
打开App,查看更多内容
随时随地看视频慕课网APP