应用面向对象的方法来写的话,你首先清楚我要做什么事,想要那些功能,考虑他们的同时不要去想代码上怎么实现的。比如:要发广告邮件,广告邮件列表存在数据库里面。倘若用C#来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。
于是就设计了三个类:
一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;
一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;
一个主类负责从命令读参数,处理命令行参数,调用发email的类。
把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。
仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。
这样的分析方法其实是不适用于C#这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比C#实现起来轻松的多,逻辑上也清楚的多。
我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。对于一个邮件来说,有邮件头,邮件体,和邮件地址这三个属性,发送邮件,需要一个发送的方法,另外还需要一个能把所有邮件地址列出来的方法。按照这个思路去写代码的话就会比较轻松。
定义一个字符串处理类 比如strTools
calss strTools
{
//此处用一个静态方法对字符串进行处理
public static string f(string s)
{
//对参数进行处理
return 处理结果;
}
}
然后修改你的按钮的click事件代码如下
textBox2.Text=strTools.f(textBox1.Text);
就o
1.把对第一个文本框的数据处理封装在一个类中,比如StrControl类
pubic class StrControl
{
//此处用一个静态方法对字符串进行处理
//静态方法直接用类名即可调用,不用实例化
public static string GetStr(string str)
{
//对数据进行处理
//把处理结果返回
return 处理结果;
}
}
2.在Button按钮的单击事件中
txtStr1.Text=StrControl.GetStr(txtStr2.Text);