我是学Asp.net的,学了四个月了,看看一些关于反射与特性的网上文章,真是晕的乎的。
所以,出高分,请高人,说明白些(我知道知识是一步一步学的,但现在我就想知道以上三个问题的答案,如果您想建议我什么什么的,请给我说明白上面的至少一个答案后,再建议。)
本贴不散分,也不允许乱回。本只允许回贴或帮顶。
谢谢。(至于,200分,是开两个同题贴。)
------解决方案--------------------------------------------------------
特性(Attribute)在实际开发中有用
=============
这,我还真给不出太准确的答案,给LZ一句话“特性是被指定给某一声明的一则附加的声明性信息,并且有了它可以有条件的进行编程。”
什么是滥用反射
=================
我给你一篇翻译文章,写的还行。
http://www.cnblogs.com/WuCountry/archive/2007/04/02/697391
------解决方案--------------------------------------------------------
特性(Attribute)在实际开发中有用
==================================
帮助开发人员方便地表达他们的意图
什么是滥用反射
==================================
使用反射,性能上稍微低一些
反射+特性,有什么实际用处
==================================
在某些类型上应用特性可以改变其类型的方法的行为
比如在枚举类型上应用Flags特性可以改变System.Enum的ToString、Format、Parse方法的行为。
如果是我们自己写的代码
public void TestMethod(Type t)
{
//根据传进来的类型是否定义了某种特性可以做不同的事情
if(t.IsDefined(typeof(你的类型特性名), false))
{
}
else
{
}
}
------解决方案--------------------------------------------------------
唉,这个怎么说呢,
当没有达到达到这个高度的时候,或者说欠缺某些实践体验的时候,
偶真的想到用何种方式给 LZ 描述清楚,
我只能说, 特性(Attribute)更多用在诸如自动化工具,继承开发环境(IDE)当中,而具体的实践项目中,比较少用,
至于,反射,大多数高级(记住是高级)开发人员,最忌讳的是性能,