社区
C#
帖子详情
反射的值类型引发的一个性能问题
hainang1234
2007-08-01 01:44:41
由于我要利用反射不时检查一系列属性的值,而其值应该返回的是bool,那么利用反射则会多次出现装箱与拆箱。
请问我是否应该改为返回其它引用类型呢?比如用字符串"1"表示true。这样有必要吗?或者说这种设计方式正确吗?
...全文
120
7
打赏
收藏
反射的值类型引发的一个性能问题
由于我要利用反射不时检查一系列属性的值,而其值应该返回的是bool,那么利用反射则会多次出现装箱与拆箱。 请问我是否应该改为返回其它引用类型呢?比如用字符串"1"表示true。这样有必要吗?或者说这种设计方式正确吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hainang1234
2007-08-01
打赏
举报
回复
danjiewu(阿丹) ( ) 信誉:100 2007-8-1 14:01:42 得分: 0
没必要,跟反射比装拆箱那点性能影响可以忽略了。
_______________________________
我会在第一次存储需要调用的属性信息(PropertyInfo[] properties),也就是说以后不需要每次用的时候都查找,那么反射带来的性能影响就只体现在调用(properties[0].GetValue)(我不太清楚反射来调用会不会有或者说有多大性能影响)。
但若是不解决装箱问题,那么装箱在每一次都会发生,所以我认为有必要。
chanfengsr
2007-08-01
打赏
举报
回复
反射是C#经过优化的,应该不会很慢!
高手有空帮忙看下这个困难问题帖子!!谢谢!
http://community.csdn.net/Expert/topic/5684/5684900.xml?temp=.9734461
yuewh491
2007-08-01
打赏
举报
回复
.net方面的招聘群,希望猎头们和人力还有想找工作的兄弟们都加进来啊,拒绝骗子,拒绝忽悠
群号:6926991
hainang1234
2007-08-01
打赏
举报
回复
目前先采用第二种:
public class EnabledStatus
{
bool _enabled;
public bool Enabled
{
get { return _enabled; }
}
private EnabledStatus(bool enabled)
{
this._enabled = enabled;
}
public static EnabledStatus True = new EnabledStatus(true);
public static EnabledStatus False = new EnabledStatus(false);
public static EnabledStatus GetEnabledStatus(bool enabled)
{
if (enabled)
{
return True;
}
else
{
return False;
}
}
}
danjiewu
2007-08-01
打赏
举报
回复
没必要,跟反射比装拆箱那点性能影响可以忽略了。
hainang1234
2007-08-01
打赏
举报
回复
又或者,自己定义一个类,这个类只提供两个实例,一个表示true,一个表示false。哪种更好?
hainang1234
2007-08-01
打赏
举报
回复
或者直接定义两个static readonly 的object,代表true和false,这样似乎性能会更好,不需要构造额外的对象,不需要类型转型,只需要比较引用。
大家觉得这样设计好不好?
手写Java框架系列教程之一
反射
(含配套资料)
本课程为完整Java高级架构师课程... 本章节为手写Java框架系列教程之
反射
专题内容,通过老师的讲解,你能掌握手写Java框架系列教程之
反射
的知识,跟着老师的学习步骤和方法能让你手写出
一个
Java框架。 Java架构师课程
ASP.NET
类型
初始
值
设定项
引发
异常
连续两天都为这个运行时错误“
类型
初始
值
设定项
引发
异常”而烦恼,调试也不知道哪里出了
问题
。上网Google一下,一大堆相同的
问题
,可是按照那些方法折腾来折腾去,
问题
还是一样。最后在CSDN上发帖子问了,果然“重赏...
类型
初始
值
设定项
引发
异常
连续两天都为这个运行时错误“
类型
初始
值
设定项
引发
异常”而烦恼,调试也不知道哪里出了
问题
。上网Google一下,一大堆相同的
问题
,可是按照那些方法折腾来折腾去,
问题
还是一样。最后在CSDN上发帖子问了,果然...
Go
反射
什么是
反射
、
反射
的弊端、 reflect 包、 Go 提供的
反射
方法、 type Type
类型
、 type Kind
类型
、 TypeOf、 ValueOf
unity中使用
反射
获取
类型
信息:
反射
可以用来获取类、结构体、枚举和接口等
类型
的信息,包括名称、命名空间、成员变量、方法、属性等。请注意,
反射
调用方法和访问属性时,需要确保方法和属性是可访问的(例如,公共方法和公共属性)...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章