.
img
注册时间:--
  • 纯文字版本
    开 关闭
  • 消息
  • 收藏
  • 退出
注意:文章中$$符号只有一个,因程序问题提交后变成了两个。

走进asp.net第八课

方法是类的重要成员,实际上,程序的许多功能都是用类的方法来实现。有的教材会把C#的方法称为函数,你不必对此感到迷惑。声明一个方法跟构造函数类似,不过,构造函数必须跟所属的类具有相同的名称,且不允许有返回值。
using System;
using System.Web;
using System.Web.UI;
partial class wap:Page
{
protected string txt;
void Page_Load()
{
txt=add(100,200);
}
string add(int a,int b)
{
string s=(a+b).ToString(); //将传入的两个参数相加并转换为string型,(a+b)表示先相加再转换
return s; //返回运算结果
}
}
上面的代码声明了一个方法add,它前面的string表示它有一个string型的返回值,括号中有两个int型的参数。如果声明为void,则方法没有返回值。否则,必须要有return语句,并保证无论发生任何变化,都要有一个返回值,且必须跟方法的的返回类型相同,如上代码string add(int a,int b)我们指定了这个add方法有个string型的返回值,那么我们用return语句返回的值必须是string型。如果方法中包含if语句,那么你要注意的是无论条件是否成立,都得保证有返回值,以下的代码是不合法的:
string add(int a,int b)
{
if(a+b>10) return a+b;
}
因为,如果a+b小于10的话,这个方法就会不知道返回一个什么样的值。不过这样的错误是不能通过编译的,也就是可以在编译期就能纠正错误。在Page_Load中,调用我们声明的方法非常简单,不过你必须符合add(int,int)的规则。也就是方法的参数签名,要遵循它的数据类型,且数据类型的先后也要一样。例题中我们把两个int值传递给方法add,如:add(100,200),当程序执行到这句,系统会查找这个方法,然后传入参数进行运算,并把返回结果赋值给txt。
方法具有签名性,即参数不同,就是签名不同。方法也可以重载:
string add(string a)
{
a=a.Replace(“先花“,“鲜花“); //替换先花为鲜花
return a; //返回运算结果
}
string add(string a,int b)
{
if(a.Length>b) //设定字符串的最大长度
{
a=a.Substring(0,b); //裁剪字符串
}
return a; //返回运算结果
}
跟构造函数一样,方法的重载也是通过它的签名来识别。现在,我来说一下。第一个方法里有个a.Replace(“先花“,“鲜花“),它是.net里封装的一个静态方法,使用方法如下:

字符串变量.Replace(查找的字符串,要替换的字符串);

这个方法很实用,实际上,.net的基类库为我们预置了许多常用的静态方法和实例方法,你可以到微软msdn上查找相关资料,不过你先不要急着去找,其实.net的类库不但十分全面,且数量之多,足可以让你目瞪口呆!继续我们的基础课程吧!
在第二个方法中,我们用一个string参数和int参数作为方法add的值,其中a.Length得到一个字符串的长度。a.Substring(0,b)也是
.net里的一个静态方法,作用是裁剪字符串。它的两个参数都是int型,第一个是要裁剪的开始长度,第二个是要裁剪字符的个数。
什么是静态方法?还记得修饰符static吗?方法也跟变量一样,带有static修饰符的都是静态方法,如上所有例题都没带有static,它们都是实例方法,不过它们作用于同一个类,我们不必实例化就可以直接使用。把下面的代码保存为TheString.cs放到App_Code文件夹中。
using System;
public class TheString
{
public string add(int a,int b) //这里要有public,否则外部程序无法访问它
{
return a+b; //返回它们的和
}
public static string sub(int a,int b) //这个是静态方法
{
return a-b; //返回它们的差
}
}
现在,我们把上面两个方法组织到App_Code中,且声明类和方法的访问权限为public。这时,我们就可以在网站的任何地方使用它们了。下面新建一个aspx文件和cs文件,aspx页要有一个输出变量txt,cs文件如下:
using System;
using System.Web;
using System.Web.UI;
partial class wap:Page
{
protected string txt;
void Page_Load()
{
txt=TheString.sub(100,54); //调用TheString.cs的sub静态方法,并把返回值赋给txt。
}
}
运行它,就会得到一个100-54的得数。访问一个公共的静态方法非常方便:

类.方法(参数);

如果是实例方法,我们就得用类的实例去访问它。因为类的实例成员要在它所属的类实例化时才开始分配内存。现在把上面的cs文件修改如下:
using System;
using System.Web;
using System.Web.UI;
partial class wap:Page
{
protected string txt;
void Page_Load()
{
TheString tsg = new TheString();
txt=tsg.add(100,54); //用类TheString的实例tsg访问它的实例方法add
}
}
运行程序,就可以得到100加54的运算结果。
实际上,方法的用法相当灵活,也非常强大,我在这提到的,仅仅是它的一部分知识,包括前几课,都省略了不少内容。有的概念是我自己“发明”的,以后参阅其它教材,你不必对一些名词感到不解。在asp.net的许多教程中,都是讲流行的控件语法。我好象说过,wap,无非就是处理字符串和图象的技术,多数功能都是用C#来实现,只要你学好了C#,asp.net也就不在话下。在我的课程里,没有用到过一个控件,如果你对它有兴趣的话,无妨百度一下。这里我就不再介绍。
如果,你掌握了我所讲到的知识,请不要沾沾自喜。在实际开发中,多数程序都是以ADO.net为中心。什么是ADO.net?它正是一个全新的数据库访问技术。asp.net涉及到的知识非常广。比如Ajax无刷新技术,基于XML的应用,以及让人感到变化无常的正则表达式应用。
类,是面向对象编程的基础,我们可以将许多功能类似的方法组织到类中,以后编写程序,就轻松得多了。由于水平有限,以及多方面原因,课程就要结束了。如果你对我的课程有所研究,相信你也已经有了一定的自学能力。现在我推荐一本好书,这本书为清华大学出版社出版,书名叫《C#入门经典》,我在网上看过这本书的一些内容,讲得非常深入。只可惜我一直未能有幸买到它,因为教材的缺乏以及多种原因,以至我的知识一直止步不前。随着知识的深入,相信你很快就能超越我,不过,到时别忘了给我讲几课!
话已至此,课程就要结束了,现在,你应该明白我为什么以“走进”这个词来给本课程命名,请原谅我不能将课程完善。其实,学习还得靠你自己。
good 30

发表评论

文明评论,重在参与

暂无评论!
雷军主讲北京车展发布会!SU7 04-24
互联网汽车是什么?有什么优势呢 04-20
从“中国制造”走向“中国智造” 04-20
中国接入互联网30周年,马化腾 04-20
中国互联网30周年发展座谈会在 04-20
用著作权法来保护软件是否真的有 07-28
杀毒软件:只在搞娱乐,从未杀过 07-28
小谈高通反垄断 07-28
印度将推出百元智能机 山寨厂商 07-28
高通垄断之痛:不是国产手机大而 07-28
一张图读懂阿里巴巴眼花缭乱资本 07-28
滴滴打车副总裁张晶离职 高层换 07-28
返回Net教程-返回首页
AD