李超

cc编程笔记本。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2007年12月30日

摘要: 以前c++的时候大家用虚类,而没有接口的概念,因为c++是多根派生的。 C#变成了单根派生,一个类只能继承自一个父类,但可以继承于多个接口,其中的抽象类与接口之间有许多相同点。 首先说接口,接口的定义是包含一组虚方法的载体,是严格的CAN-DO关系,这个东西可以包含方法的声明但不能包含实现,CLR允许接口包含事件,属性,索引器,静态方法,静态字段,静态构造函数和常数,但是c#不允许接口包含任... 阅读全文
posted @ 2007-12-30 23:34 coderlee 阅读(420) 评论(0) 推荐(0) 编辑

2007年12月29日

摘要: 一个基础知识,但不是每个人都能说清楚。 子类对象转换为父类时,可以隐式转换。 父类对象转换为子类时,必须显示转换,如父类类型所指向的实际对象是父类对象而非子类对象,则出现运行时错误InvaildCastException。 使用as操作符可以避免InvalidCastException,只是当转换不成功时返回null。 MyTypeA a = new MyTypeA(); ... 阅读全文
posted @ 2007-12-29 23:56 coderlee 阅读(395) 评论(0) 推荐(0) 编辑

2007年12月28日

摘要: 有些应用程序是长时间运行的,但又不想让它占据任务栏,还想经常调出来看下结果,这个时候就可以使用托盘式的程序。 .Net实现托盘程序不复杂,基本的原理是这个样子的: 1 给应用程序窗体拖一个NotifyIcon控件。其实托盘区在微软的标准称呼就叫 通知区域,所以这个控件的名字叫NotifyIcon。 2 给NotifyIcon的Icon属性赋一个Icon类的实例,就是设置图标。 3 给NotifyI... 阅读全文
posted @ 2007-12-28 22:04 coderlee 阅读(487) 评论(0) 推荐(0) 编辑

摘要: 1 在变化到来之前,任何的提前设计,都应先假设为过度的。 2 尽量先寻找类库中是否已存在解决特定问题的组件,原理性的知识是必须的,但实际开发中更应该使用类库中已封装好的组件,以便提高开发效率。 阅读全文
posted @ 2007-12-28 19:20 coderlee 阅读(396) 评论(0) 推荐(0) 编辑

2007年12月27日

摘要: BackgroudWorker是.Net的Winform开发中处理可能会阻塞界面的耗时操作的标准做法,这种做法也许不是效率最高的(你可以使用BeginInvoke与EndInvoke并在EndInvoke获取结果然后根据结果修改界面显示,当然是询问InvokeRequired方式,也可以Thread.Start并在函数中根据结果以control.Invoke方式修改界面显示,但是这些不是最优雅的代... 阅读全文
posted @ 2007-12-27 23:16 coderlee 阅读(1557) 评论(1) 推荐(0) 编辑

摘要: 多线程Winform编程会带来的常见问题 1 UI线程执行耗时操作 UI线程被阻塞 无法响应窗体消息队列中的其他消息。 2 非UI线程修改UI属性 由于窗体资源也属于临界资源 所以有互斥访问的机制。 3 线程的同步问题 线程A等待线程B执行完毕后才能开始执行。 问题1的解决方法: 解决方法只有一种,就是开启新线程执行耗时操作,使原界面线程仍能够响应窗体消息队列中的用户消息及系统消息。 ... 阅读全文
posted @ 2007-12-27 18:23 coderlee 阅读(2464) 评论(0) 推荐(0) 编辑

2007年12月23日

摘要: 以前总以为那个选择文件的窗口要自己做,后来才知道不过是一个API而已. 这个API函数的声明是这个样子的: WINCOMMDLGAPI BOOL APIENTRY GetOpenFileNameA(LPOPENFILENAMEA); WINCOMMDLGAPI BOOL APIENTRY GetOpenFileNameW(LPOPENFILENAMEW); #ifdef UNICODE #def... 阅读全文
posted @ 2007-12-23 00:38 coderlee 阅读(1309) 评论(0) 推荐(0) 编辑

2007年12月21日

摘要: WINBASEAPI DWORD GetTickCount(VOID); 返回自系统启动到现在的毫秒数,每隔49.7天就清零。 阅读全文
posted @ 2007-12-21 23:39 coderlee 阅读(1308) 评论(0) 推荐(0) 编辑

2007年12月20日

摘要: BOOL GetComputerName( LPTSTR lpBuffer, LPDWORD lpnSize ); GetComputerName函数用来获取计算机的名称,lpBuffer是TCHAR[]类型,TCHAR的数量可以设置为MAX_COMPUTERNAME_LENGTH+1,lpnSize就是lpBuffer的位数 阅读全文
posted @ 2007-12-20 23:32 coderlee 阅读(1717) 评论(0) 推荐(0) 编辑

摘要: 昨天晚上忘记写了 现在补上 WinMain函数中有四个参数 hInstance hPreInstance lpCmdLine nCmdShow 今天介绍下第三个参数的作用 第三个参数可以向应用程序传入一个值 可以在VS的项目属性的命令中设置该参数 阅读全文
posted @ 2007-12-20 08:55 coderlee 阅读(880) 评论(1) 推荐(0) 编辑