随笔 - 3  文章 - 0 评论 - 0 trackbacks - 0

摘要: 委托和事件浅解
一、委托
委托实际上就是C++里面的函数指针,你可以让这个指针指向委托定义时所声名的那种类型的函数。举个例子:

public delegate void 连接数据库委托();
表示:声名一个委托类型,这个委托叫“连接数据库委托”,它所能指向的函数都是返回值为void型,没有参数的函数。比如:
private void 连接Oracle数据库();
private void 连接SqlServer数据库();

我们现在的程序里面要根据用户设定的数据库类型,自动连接数据库。
程序里面可以这么写:
连接数据库委托 委托实例 = null;

switch(目标数据库类型)
{
case 数据库类型.Oracle数据库:
委托实例 += new 连接数据库委托(连接Oracle数据库);
break;
case 数据库类型.SqlServer数据库:
阅读全文
posted @ 2005-09-23 12:22 lh8287 阅读(429) 评论(0) 编辑
摘要: 大李的破程序,他在Application.Run(new Form1());之前应用了Application.EnableVisualStyles();

程序中有个按钮,Click事件的代码为:
Form2 frm2=new Form2();
frm2.ShowDialog();
程序运行时,点击此按钮,出现了一个窗体,然后关闭此窗体,再点击这个按钮,又会出现一个窗体,当关闭这个窗体时系统抛出了一个异常:System.Runtime.InteropServices.SEHException,外部组件引发异常。

在Google查了一下,发现了解决办法:
static void Main()
{
Application.EnableVisualStyles();
new Thread(new ThreadStart(AppRun)).Start();
}

private static void AppRun()
{
Applicat阅读全文
posted @ 2005-09-08 15:12 lh8287 阅读(1087) 评论(0) 编辑
摘要: C#中的注释要好好加以利用,这样就能做出带有注释的Dll或者控件,方便使用。

设计类的时候:阅读全文
posted @ 2005-09-08 15:10 lh8287 阅读(311) 评论(0) 编辑