我郁闷了,我烦燥了。为什么delegate还搞不懂。

xupeihuagudulei 2009-09-30 08:55:10
委托和事件从头开始看了又看什么cnblogs
论坛里面一些讨论的很热的委托,那个名字忘了。

就是好像一共有发800多篇帖子的
我也看过了
可是现在还是非常迷惑,越看越晕
越看越不明白
现在在看msdn里面定义的
public delegate void EventHandler(object sender,EventArgs e)

public event Eventhandler SelectIndexChanged

头大了

张子阳老师的那篇委托与事件算是写得非常详细了
可是还是看得头晕晕

看样子自己脑子真的不好使,

转不不过弯来。

谁能再详细的解释下
不需要现实生活中的例子,例子我自己也能说明,
就是要看代码

代码再代码
越多越好
我今天就要把委托给弄明白了。

...全文
280 50 打赏 收藏 转发到动态 举报
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
V68V6 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 zzxap 的回复:]
sp1234的话好深奥,往往要看几遍

“你平常先尝试着经常把设计用通俗的语言将给丝毫不懂编程的人听”  读起来不怎么通顺。。。


[/Quote]

你平常可以尝试把你的设计思路讲给完全不懂编程没接触过编程的门外汉听,由此下来你对设计的驾驭和把握将更上几个台阶。。。。
不要太介意sp1234语义制导上面的缺陷,客观的说sp1234说的话丢给一般的编译器会报语法错,但丝毫不影响自然人对其言语精髓的理解。
程序漫步 2009-09-30
  • 打赏
  • 举报
回复
类似 方法当参传递
cuizhanjun1981 2009-09-30
  • 打赏
  • 举报
回复
遇到需要的时候 就知道了。

有是需要 把方法作为参数 传入的。这样更灵活。
阿彪兄 2009-09-30
  • 打赏
  • 举报
回复
支持一下
xupeihuagudulei 2009-09-30
  • 打赏
  • 举报
回复
nicolashwh 2009-09-30
  • 打赏
  • 举报
回复
不知你学过c没有,当函数指针来理解好了。
woaipanda 2009-09-30
  • 打赏
  • 举报
回复
还是看C#2.0锐利体验系列课程吧
xupeihuagudulei 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 zzxap 的回复:]
sp1234的话好深奥,往往要看几遍

“你平常先尝试着经常把设计用通俗的语言将给丝毫不懂编程的人听”  读起来不怎么通顺。。。


[/Quote]我认为他想说的是把编程用最通俗的语言讲给非IT人士听
Hide1984 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 xupeihuagudulei 的回复:]
委托和事件从头开始看了又看什么cnblogs
论坛里面一些讨论的很热的委托,那个名字忘了。

就是好像一共有发800多篇帖子的
我也看过了
可是现在还是非常迷惑,越看越晕
越看越不明白
现在在看msdn里面定义的
public delegate void EventHandler(object sender,EventArgs e)

public event Eventhandler SelectIndexChanged

头大了

张子阳老师的那篇委托与事件算是写得非常详细了
可是还是看得头晕晕

看样子自己脑子真的不好使,

转不不过弯来。

谁能再详细的解释下
不需要现实生活中的例子,例子我自己也能说明,
就是要看代码

代码再代码
越多越好
我今天就要把委托给弄明白了。


[/Quote]

楼主先去看看观察者模式,再看委托。

委托和事件不过是C#提供的语法糖而已~
weikai4321 2009-09-30
  • 打赏
  • 举报
回复
学习一下
zzxap 2009-09-30
  • 打赏
  • 举报
回复
sp1234的话好深奥,往往要看几遍

“你平常先尝试着经常把设计用通俗的语言将给丝毫不懂编程的人听” 读起来不怎么通顺。。。

ViewStates 2009-09-30
  • 打赏
  • 举报
回复
我记得刚学.NET的时候对“面向对象”这个词很疑惑,问了个同学,那同学估计也不咋的,也没给我一个很清晰的答案,后来写的多了,慢慢的也就体会出来了。
后来看委托也是卡卡的,看是看懂了,但是死活不明白为什么要这样写。后来硬着头皮照葫芦画瓢,画多了也就明白了。
看100遍不如自己写一遍。
openIVS 2009-09-30
  • 打赏
  • 举报
回复
太深奥了,我过来灌水一下
mbh0210 2009-09-30
  • 打赏
  • 举报
回复
这个看看,等你在设计程序的时候真正用到了,你也就明白了
xupeihuagudulei 2009-09-30
  • 打赏
  • 举报
回复
我刚又在看张子阳的,
现在明白了些,不像刚才那么糊了
现在有些事情忙下,等下再来看
随风落梦 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 sp1234 的回复:]
其实单纯“死抠”这里的概念,技术并不重要。胡乱拼凑、没有软件工程的项目,最后往往也能给用户交差。这类东西需要多从软件工程的角度去考虑,而单纯去背delegate、event的概念还不如先放下。

有很多相关的软件工程的专题,小到“依赖倒置原则”,大到“按照职责划分对象(类)来设计软件”,以及XP中的“只做简单的设计”等等,你要做好软件,就不能花几个星期甚至几个月去死抠一个过度复杂的对象(类)的设计,不能把各种无关的职责都塞进过度复杂的类型,而应该用1、2天时间设计一个核心的服务,然后也是1、2天逐步地一个一个设计其它利用了这个服务的客户,即将职责分解到足够简单的对象。

OOAD、UML之类的,不管直接的还是辅助的知识,都是围绕这些软件工程中的面向对象设计技术,才会学到这些。软件设计其实并不是编程,设计模型不但可以给机器使用,往往也可以给人使用,所以设计软件的时候应该首先忘记那些编程伎俩,轻视编程而重视设计。
[/Quote]
还挺深奥的!呵呵
qingwa008 2009-09-30
  • 打赏
  • 举报
回复
楼主咋被教育的没声儿了?哈哈
贴段代码可以和你上面的比较下


//定义接口,它定义了方法的类型
public interface IGreeting
{
void Greeting(string name);
}
public class EnglishGreeting : IGreeting
{
public void Greeting(string name)
{
Console.WriteLine("Morning, " + name);
}
}
public class ChineseGreeting : IGreeting
{
public void Greeting(string name)
{
Console.WriteLine("早上好, " + name);
}
}

//注意此方法,它接受一个IGreeting类型的对象作为参数
private static void GreetPeople(string name, IGreeting MakeGreeting)
{
MakeGreeting.Greeting(name);
}
static void Main(string[] args)
{
EnglishGreeting englishGreeting = new EnglishGreeting();
ChineseGreeting chineseGreeting = new ChineseGreeting();
GreetPeople("Jimmy Zhang", englishGreeting);
GreetPeople("张子阳", chineseGreeting);
Console.ReadKey();
}
HDNGO 2009-09-30
  • 打赏
  • 举报
回复
项目里不需要,你硬去看,八成是看了就忘记了没感触~
当真正的用过一次以后,就明白了~
有空理解一下什么依赖倒置之类的,还是不错的~
  • 打赏
  • 举报
回复
“越看越晕 ”有的时候是你满脑子技术术语想去记住,而钻入了牛角尖。这时候,还是放下吧。

你平常先尝试着经常把设计用通俗的语言将给丝毫不懂编程的人听,过后再去深入研究技术,这样自己就不容易死抠概念名词,不容易先入为主地以自己的概念来理解别人的设计,而会以别人的概念去理解别人的设计。
烈火晴天 2009-09-30
  • 打赏
  • 举报
回复
很多事情都是"1+1=2",没有为什么,只是定义,你是时间问题...
按照MS规定的方法去写代码,很多东西就有了所以然...

这叫哲学解决问题,开个玩笑....大家勿ma!!!
加载更多回复(29)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧