ASP2.0(C#)基础教程.ppt
第五章实现和使用ASP.NET对象的方法李勇平回顾n n理解对象的概念n n掌握如何使用C#存储ASP.NET数据n n理解变量的作用域n n理解变量的命名规则n n掌握常量的使用方法n n学会使用运算符n n学会使用数组n n学会使用数据集合类李勇平李勇平 高级培训讲师高级培训讲师目标n n掌握C#的几种常见的语句执行顺序n n掌握方法的定义和使用n n学会使用日期和时间对象n n学会使用字符串对象李勇平李勇平 高级培训讲师高级培训讲师方法中代码执行顺序n n顺序执行n n选择执行n n循环执行李勇平李勇平 高级培训讲师高级培训讲师选择执行n n有选择执行代码n n选择语句if/elseif/else结构结构switchswitch结构结构n n选择语句关键点判断表达式判断表达式分支结构分支结构李勇平李勇平 高级培训讲师高级培训讲师if语句if(表达式)/当条件为真时希望运行的代码块if(表达式)/当条件为真时希望运行的代码块else/当条件为假时希望运行的代码块李勇平李勇平 高级培训讲师高级培训讲师switch语句switch(测试表达式)case value1:/语句 break;case value2:/语句 break;default:/默认的处理/语句 break;double total=0.0;char grade=C;switch(grade)case A:total+=4.0;break;case B:total+=3.0;break;.李勇平李勇平 高级培训讲师高级培训讲师循环执行n n循环结构对一段代码重复执行需要的次数。循环结构并不跳过代码,而是重复执行代码。n n循环执行必须有循环停止的条件,否则死循环、系统崩溃n nbreak语句,停止执行循环n ncontinue语句;停止本次执行,继续下次执行李勇平李勇平 高级培训讲师高级培训讲师for语句for(int k=0;k 5;K+)/循环体内的语句int nAges=new int5 23,19,22,21,56;int nAges=new int5 23,19,22,21,56;for(int i=0;i nAges.Length;i+)for(int i=0;i nAges.Length;i+)Response.Write(nAgesi);Response.Write(nAgesi);Response.Write();Response.Write();李勇平李勇平 高级培训讲师高级培训讲师while循环int i=0;while(逻辑表达式)/.i+;/计算计算计算计算1 12 2n=1000n=1000,n n的值的值的值的值 int sum=0;int sum=0;int i=1;int i=1;while(sum=1000)while(sum 0.01);while(x 0.01);Response.Write(x);Response.Write(x);李勇平李勇平 高级培训讲师高级培训讲师foreachin循环n nforeach循环是为使用数据集合(例如数组)而专门构造的。n nforeach的语法非常简单:首先是关键字首先是关键字foreachforeach,一个左括号,集合中,一个左括号,集合中数据的类型,一个用户保存集合中每个连续值数据的类型,一个用户保存集合中每个连续值的变量的变量关键字关键字inin,集合的名称,一个右括号,集合的名称,一个右括号然后是循环体。对于集合中的每个元素,循环然后是循环体。对于集合中的每个元素,循环体执行一次。体执行一次。李勇平李勇平 高级培训讲师高级培训讲师方法以及方法调用n n方法有利于代码的模块化,以实现代码重用,更方法有利于代码的模块化,以实现代码重用,更加利于代码维护加利于代码维护n n方法调用方法调用李勇平李勇平 高级培训讲师高级培训讲师定义和使用方法 protected void Page_Load(object protected void Page_Load(object sender,EventArgs e)sender,EventArgs e)InitTextBox();InitTextBox();void InitTextBox()void InitTextBox()txtUserName.Text=;txtUserName.Text=;txtPassword.Text=;txtPassword.Text=;方法名(参数1,参数2,参数3,参数n).李勇平李勇平 高级培训讲师高级培训讲师方法参数传递public static void MsgBox(string _Msg)public static void MsgBox(string _Msg)string StrScript;string StrScript;StrScript=();StrScript=();StrScript+=(alert(+_Msg+););StrScript+=(alert(+_Msg+););StrScript+=();StrScript+=();System.Web.HttpContext.Current.Response.Write(StrScript);System.Web.HttpContext.Current.Response.Write(StrScript);protected void btnOK_Click(object sender,EventArgs e)protected void btnOK_Click(object sender,EventArgs e)if(txtUserName.Text=)if(txtUserName.Text=)MsgBox(MsgBox(请输入用户名请输入用户名请输入用户名请输入用户名););李勇平李勇平 高级培训讲师高级培训讲师方法返回值n n返回值类型n n使用return在方法中返回值public public stringstring Md5hash_String(string InputString)Md5hash_String(string InputString)InputString=InputString=System.Web.Security.FormsAuthentication.HashPasswordForStoriSystem.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(InputString,MD5);ngInConfigFile(InputString,MD5);return return InputString;InputString;李勇平李勇平 高级培训讲师高级培训讲师参数传递的方式n n按值传递 void byValue(string strIn)void byValue(string strIn)n n按引用传递void byReference(void byReference(refref string strIn)string strIn)n n输出参数void byOut(string strIn,void byOut(string strIn,outout string string outValue)outValue)李勇平李勇平 高级培训讲师高级培训讲师参数传递方式样例void byValue(string strIn)strIn+=after byValue;void byReference(ref string strIn)strIn+=after byReference;void byOut(string strIn,out string outValue)strIn+=after byOut;outValue=strIn;李勇平李勇平 高级培训讲师高级培训讲师传递对象参数n n传递对象的引用public static void GetFocus(string Ctl_Name,Page page)public static void GetFocus(string Ctl_Name,Page page)page.ClientScript.RegisterStartupScript(page.GetType(),Ctl_Name,page.ClientScript.RegisterStartupScript(page.GetType(),Ctl_Name,document.forms(0).+Ctl_Name+.focus();document.forms(0).+Ctl_Name+.focus();document.forms(0).+Ctl_Name+.select(););document.forms(0).+Ctl_Name+.select(););李勇平李勇平 高级培训讲师高级培训讲师传递数组参数n n数组是对象数组数组int int 表述数组对象。表述数组对象。private int private int sum(int arrayInput)sum(int arrayInput)n n数组参数传递的是对象的引用private void doubleArray(int arrayInput)private void doubleArray(int arrayInput)for(int i=0;i arrayInput.Length;i+)for(int i=0;i arrayInput.Length;i+)arrayInputi=arrayInputi*2;arrayInputi=arrayInputi*2;李勇平李勇平 高级培训讲师高级培训讲师DateTime结构n nDateTime结构用于表示时间和日期n n该结构属于System命名空间n nDateTime提供了许多处理日期和时间的属性和方法n nDateTime.Now李勇平李勇平 高级培训讲师高级培训讲师TimeSpan类n nTimeSpan类表示一个时间间隔。TimeSpan 实例的值表示一个时间段。DateTime currentDateTime=DateTime.Now;DateTime currentDateTime=DateTime.Now;DateTime dt2008=new DateTime(2008,1,1);DateTime dt2008=new DateTime(2008,1,1);TimeSpan ts=dt2008-currentDateTime;TimeSpan ts=dt2008-currentDateTime;Response.Write(Response.Write(今天是今天是今天是今天是+currentDateTime.ToString();+currentDateTime.ToString();Response.Write(Response.Write(距距距距20082008年年年年1 1月月月月1 1日还有日还有日还有日还有:+Convert.ToInt64(ts.Days)+:+Convert.ToInt64(ts.Days)+天天天天,+Convert.ToInt64(ts.Hours)+,+Convert.ToInt64(ts.Hours)+小时小时小时小时,+,+Convert.ToInt64(ts.Minutes)+Convert.ToInt64(ts.Minutes)+分,分,分,分,););李勇平李勇平 高级培训讲师高级培训讲师String类n n String类类表示一系列不可变的字符。n nString 的实例被称为是“不可变的”,这是由于一旦创建它就无法修改它的值n n看似能修改 String 的方法实际上只是返回一个包含修改内容的新 String。李勇平李勇平 高级培训讲师高级培训讲师StringBuilder类n n在需要对字符串执行重复修改的情况下,与创建新的在需要对字符串执行重复修改的情况下,与创建新的 StringString 对象相关的系统开销可能会非常昂贵对象相关的系统开销可能会非常昂贵n n如果要修改字符串而不创建新的对象,则可以使用如果要修改字符串而不创建新的对象,则可以使用 类类StringBuilder sbIDs=new StringBuilder10new StringBuilder sbIDs=new StringBuilder10new StringBuilder(9901),new StringBuilder(9902),StringBuilder(9901),new StringBuilder(9902),new StringBuilder(0101),new StringBuilder(0304),new StringBuilder(0101),new StringBuilder(0304),new StringBuilder(0009),new StringBuilder(0111),new StringBuilder(0009),new StringBuilder(0111),new StringBuilder(9905),new StringBuilder(9801),new StringBuilder(9905),new StringBuilder(9801),new StringBuilder(0005),new StringBuilder(0098);new StringBuilder(0005),new StringBuilder(0098);foreach(StringBuilder sbID in sbIDs)foreach(StringBuilder sbID in sbIDs)sbID.Insert(0,Hope);sbID.Insert(0,Hope);李勇平李勇平 高级培训讲师高级培训讲师StringBuilder类的方法n nAppend Append 方法可用来将文本或对象的字符串表示方法可用来将文本或对象的字符串表示形式添加到由当前形式添加到由当前 StringBuilder StringBuilder 对象表示的字对象表示的字符串的结尾处符串的结尾处n nInsert Insert 方法将字符串或对象添加到当前方法将字符串或对象添加到当前 StringBuilder StringBuilder 对象中的指定位置对象中的指定位置n n可以使用可以使用 Remove Remove 方法从当前方法从当前 StringBuilder StringBuilder 对象中移除指定数量的字符,移除过程从指定的对象中移除指定数量的字符,移除过程从指定的从零开始的索引处开始从零开始的索引处开始n n使用使用 Replace Replace 方法,可以用另一个指定的字符来方法,可以用另一个指定的字符来替换替换 StringBuilder StringBuilder 对象内的字符对象内的字符李勇平李勇平 高级培训讲师高级培训讲师Parse方法n nParse 方法将字符串转换为实际的.NET 框架基类型 string MyString=12345;string MyString=12345;int MyInt=int.Parse(MyString);int MyInt=int.Parse(MyString);MyInt+;MyInt+;string MyString=Jan 1,2002;string MyString=Jan 1,2002;DateTime MyDateTime=DateTime.Parse(MyString);DateTime MyDateTime=DateTime.Parse(MyString);李勇平李勇平 高级培训讲师高级培训讲师本章小结n n掌握C#的几种常见的语句执行顺序顺序执行选择执行循环执行n n掌握方法的定义和使用n n学会使用日期和时间对象n n学会使用字符串对象李勇平李勇平 高级培训讲师高级培训讲师课后练习 n n函数参数传递的方式有哪几种?n n说明while和dowhile的区别。n n使用StringBuilder类来连接10个字符串,这10个字符串分别为用户在网页上通过文本框输入的字符串。李勇平李勇平 高级培训讲师高级培训讲师