bindsang

工作五年,长期从事于asp.net方面的编程,业余爱好VC编程,温和、谦虚、自律、自信、善于与人交往沟通
随笔 - 35, 文章 - 0, 评论 - 64, 阅读 - 64928
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  面向对象

面向对象分析,设计,编程
摘要:通常我们在做多线程编写WinForm程序的时候经常听到的一句话就是“窗体控件只能在主线程中创建”,刚开始的时候我也接受的是这样的教育,因此一直以来一直在编程中有意识的这样做了。平时也没有过多的去想为什么要这样做,就把这个当做是一条公理了,就像是数学中“两个不同的点确定一条直线,三个不在同一直线上的点确定一个平面”一样那么简单。 最近又一次在做一个WinForm程序,突发奇想想要试试在非主线程创建一个窗体控件会有什么结果为什么不能这样做。 结果运行这段程序的时候@1这个地方的两行代码也执行到了,可是却一点问题都没有,没有异常,没有特殊的提示,程序也能正常退出。这是怎么回事呢?不是说不能在非主线程上创建控件吗?可是我这个程序不是好好的运行着又怎么解释呢。带着这样的问题我又回头去看了一个自己写的代码,这次发现了一个问题:frm 调用的是ShowDialog方法,这会使调用线程一直阻塞在这个地方。会不会是这个原因呢?于是我把ShowDialog替换成了Show方法,一试,果然就出错了。我又试了其它几种常见的控件,TextBox,Label,Button都是这样,唯一 阅读全文

posted @ 2008-12-23 15:27 阅读(1700) 评论(7) 推荐(2) 编辑

摘要:使用C#也好几年了,从一开始的囫囵接收,到后来积累到一定程度后再回过头去细细思考,这期间也发现了一些恍然大悟,矛塞顿开的情况.我.NET的事件触发的原理的认识就是这样走过来的. 在刚使用C#的时候(vs2003),没有多少参考资料,没有Reflector,只有一个随着IDE一起的MSDN,所有的东东基本上都需要从那上去去找,那个时候对.NET里面的事件一直有几个不明白的地方: 1. 事件本质上是一个委托,为什么在声明的时候没有给事件初始化,但是挂接事件的时候却可以直接用+=给事件增加一个处理函数,这个时候却不会报NullReference异常,而单独声明一个委托引用直接这样使却会报错? 2. 为什么基类声明的事件在派生类里没法直接调用触发事件? 3. 为什么在Framework中,对于一个没有密封(sealed)的类,每个声明的事件基本上都有一个On+事件名称的protected的函数(有时候还是虚函数)? 阅读全文

posted @ 2008-07-28 16:13 阅读(420) 评论(0) 推荐(0) 编辑

摘要:本人现在长期从事于.NET下的开发,因为工作的关系,间断的做过一些C++,DELPHI的程序,对后两者的程序语言有一定的了解,因此在平时也经常遇到有人问我关于C#和另外两种语言相比有哪些特点。我所了解的其中很大一个特点就是C#里没有指针,所有的对象全部通过引用来访问。引用的类型之间不能随便进行转换,避免了程序运行过程中出现的转换可能发生的问题(例如把一个整型转成一个指针进行访问等类似的潜在危险)。普能对象可以通过指针来引用,可是对于C++,DELPHI中的函数指针作为参数传送这样的函数调用形式在C#里面又应该怎么来表示呢。答案就是Delegate。同C++/DELPHI 用函数指针来实现事件(Event)和回调函数类似,在C#中是通过Delegate来实现。 阅读全文

posted @ 2008-07-28 10:14 阅读(2231) 评论(5) 推荐(0) 编辑

摘要:抽象类和接口是编程语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法 阅读全文

posted @ 2008-07-28 09:32 阅读(298) 评论(0) 推荐(0) 编辑

摘要:很久以前就知道面向对象设计有一些公认的基本原则,可都是零零碎碎的了解一部分,虽然在实践的过程中也有意识的用到了一些,可是从来没有系统的总结过,这是我从网上找到的比较详细的介绍,就当是读书笔记吧 阅读全文

posted @ 2008-07-28 09:29 阅读(777) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示