当前位置:编程学习 > C#/ASP.NET >>

请问委托和指针的优劣、利弊、异同

请问委托和指针的优劣、利弊、异同,不要百度,谢谢!!!!!! --------------------编程问答-------------------- C#中的委托类似于C++中的函数指针。使用委托可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。
与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。
函数指针就是指向函数入口的指针。虽然每个函数不是变量,但是在内存中,函数也占有相应的物理地址,函数指针就是指向该函数的入口地址的。
--------------------编程问答-------------------- 我没看过哪个C#程序员用指针的.
指针用不好会出现内存泄露的情况,但是委托不会.
指针相对而言比较难控制,逻辑比较难理解,需要有好的计算机基础.因为他直接操作内存.而委托对于程序员而言就是把函数作为参数传递.只要执行委托,那么委托预定的函数就会被执行,这既简单又好理解.

其实委托就是封装好的指针,但由.net框架保证的你安全性. --------------------编程问答-------------------- 委托是个函数表,可以指向多个函数 --------------------编程问答-------------------- C#从来不会也不可能用指针替代委托,指针只有在指向某个数据块操作的时候才会提到,委托和指针丝毫沾不到边,你用委托的时候不要考虑用指针来替代,不可能。 --------------------编程问答--------------------
引用 4 楼 qldsrx 的回复:
C#从来不会也不可能用指针替代委托,指针只有在指向某个数据块操作的时候才会提到,委托和指针丝毫沾不到边,你用委托的时候不要考虑用指针来替代,不可能。

委托是可以被注入的(修改其指针),不过操作比较繁琐,而且.net版本不兼容。 --------------------编程问答--------------------
引用 楼主 ilijllt 的回复:
请问委托和指针的优劣、利弊、异同,不要百度,谢谢!!!!!!
给你一支笔,过了50年你就能变成为莫言了?但是如果给你一些更高级的指导呢?

这就是高级跟低级之分。
--------------------编程问答-------------------- 当然有的人说了“越是低级的能力越强、速度越快”,这种人根本就是狡辩。如果不给你任何指导,你当然也能成为莫言。但是你不能因此就假装说不懂什么叫做高下之分。

而在编程中就是有这种人,他只纠缠大家都懂得的什么“执行速度”之类的话题,根本不懂编程语言的“高低层次之分”是指什么意思。 --------------------编程问答-------------------- 委托??指针??比较??

这是啥思维方式?不能因为茶壶和男人都有把就来比较比较把,虽然男人都有把,有些男人还可以被叫成大茶壶,但是他们有啥可比较滴,根本就不在一搭 --------------------编程问答-------------------- 委托类型的事件确实相对函数指针要更好些.但是不能因此就滥用事件.C#里的委托默认都是多播的确实对性能有影响.另外在IDispose的接口中最好将不需要的事件,解除注册,否者,有引用的对象系统回收不了. --------------------编程问答-------------------- 个人认为没有什么太大的可比性 --------------------编程问答--------------------                                                     
委托本质是一种类型,是一个对象,和Object没什么区别;内容是封装了一个函数入口的表;特点是强类型,安全。

指针本质是一个数字编号,可以转换为int\long\ulong等类型;内容是指向某段内存的地址;特点是高效,自由~~

2者不在同一个概念的层次上,没有可比性 --------------------编程问答-------------------- 每每看到这种问题,我就在想,是什么样的教育才能把人的灵魂都抹去,成为知识的奴隶。 --------------------编程问答-------------------- 我感觉这是两种不同的东西阿

不知道您要做的比较是怎么样的呢?
--------------------编程问答-------------------- --------------------编程问答-------------------- 我觉得起码你得理解委托和指针的概念。 再来谈区别吧?

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,