首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeDescriptor.GetProperties与Type.GetProperties

TypeDescriptor.GetProperties与Type.GetProperties
EN

Stack Overflow用户
提问于 2011-09-28 02:24:30
回答 1查看 3K关注 0票数 7

我正在看一些代码,其中MSDN作者在同一个类的不同方法中使用了以下内容:

代码语言:javascript
复制
if ( TypeDescriptor.GetProperties(ModelInstance)[propertyName] != null ) return;

var property = ModelInstance.GetType().GetProperty(propertyName);

你会使用前者,因为它更快,你只需要查询一个属性,而后者,如果你需要操作它吗?还有别的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-28 02:33:23

第一种方法通常不应该更快,因为在内部默认情况下,它实际上使用了第二种方法。TypeDescriptor架构在正常反射( instance.GetType().GetProperty(...)表示的反射)之上添加了功能。有关TypeDescriptor体系结构的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms171819.aspx

一般来说,直接使用反射更快(即上面的第二行),但如果正在使用某个自定义类型提供程序,可能会返回标准反射之外的其他结果,则使用TypeDescriptor可能是有原因的。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7573913

复制
相关文章

相似问题

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