日期:2014-05-17  浏览次数:20802 次

散分--分享一个使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝 .
散分--分享一个使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝 的小程序,
http://blog.csdn.net/bluedoctor/article/details/8424510 是原理说明,相信请看链接文章。

------解决方案--------------------
GOOD..
------解决方案--------------------
仔细看了一下 还不错,做个标记 以后交流。
------解决方案--------------------
收藏....
------解决方案--------------------
非常感谢分享!
------解决方案--------------------
~~~  做个标记~~嘿嘿
------解决方案--------------------
不错,还没有这样玩儿过。收藏
------解决方案--------------------
这应该是C#作为一种静态语言的缺陷吧。像lz研究到这个程度,再去研究奇技淫巧就不值得了,可以换语言了。

如同十年前很多人研究VB怎么实现多线程和对象继承一样。
------解决方案--------------------
感谢分享!!!!
------解决方案--------------------
感觉很好,标记一下。
------解决方案--------------------

------解决方案--------------------
mark一下,以后肯定会用到的。
------解决方案--------------------

很好很强大。
------解决方案--------------------
引用:
引用:这应该是C#作为一种静态语言的缺陷吧。像lz研究到这个程度,再去研究奇技淫巧就不值得了,可以换语言了。

如同十年前很多人研究VB怎么实现多线程和对象继承一样。
请问动态语言实现这个功能很容易吗?有请介绍下。

对于Javascript、Go、Ruby等语言,根本没有“类型”这个概念。换一句话说,你给任何对象调用任何方法(在CLR看来,属性其实也是方法啦),无非就是两个结果,要么这个对象没有这个方法,要么有这个方法,那么就可以执行。没有类型的好处就是不存在什么接口适配、类型转换之类的活儿。也许你觉得不可思议,这样一来不是乱套了么?确实,在静态语言中这么做的确会乱套,因为静态语言的编译期有着严格的检查,但是运行期的检查机制太弱。但是那些天然的动态语言却很好地解决了这个问题。难能可贵地是,原先大家理解,动态语言的IDE很难实现像静态语言一样的函数参数提示/自动列出成员这样的特性,但是你看VS2012对JS的支持(随着Javascript的普及,现在JS竟然是成为一种编程语言了),现在和静态语言没有差异了。而且现在的动态语言,基本全部引入了JIT编译,性能也有了很大改善(Google开了一个好头)。
------解决方案--------------------
动态语言带来的是一种全新的思维方式。比如用C#实现OOP,你会想到继承,但是基于原型的语言(比如js io ruby 等等),给出了另一种思路,那就是你可以拷贝一个对象,然后修改它的方法,或者给对象(没错,是对象)添加新方法来实现继承。动态语言不强调类型。在C#中,定义一个类,再产生这个类的实例是天经地义的事情,在动态语言中根本没有类型,对象就是类。原型(注意像ruby这样的语言未必非要用原型来设计对象)的开发方式就是,你new一个object类型的对象,然后添加几个方法,这就相当于定义了一个类,你将它作为模板,克隆几个,那么它们就相当于是这个类的几个实例。同样,这些语言也不需要接口这个概念。你定义了一个方法,就是实现了一个接口(Go的设计者自己这么说)。
------解决方案--------------------
先去看看。
------解决方案--------------------
支持
------解决方案--------------------
非常感谢分享! 
------解决方案--------------------
非常感谢分享! 
------解决方案--------------------
好东西,支持!!!收藏。。。