当前位置:中国站长下载文章中心网页编程.NET编程 → asp.net高级教程(四)---实战篇

asp.net高级教程(四)---实战篇

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 9:52:51
here username='" +
  
  a_strUserName + "'";
  }
  myConn.Open() ;
  myCmd.ActiveConnection = myConn ;
  myCmd.ExecuteNonQuery() ;
  myConn.Close() ;
  
  }
  catch(SQLException exp)
  {
  throw(new Exception("数据库出错:" + exp.Message)) ;
  }
  
  }
  
  //取回密码
  public void GetPassword(string a_strUserName , string a_strEmail)
  {
  
  if (GetUser(a_strUserName) && m_strEmail == a_strEmail)
  {
  //发送Email
  System.Web.Util.MailMessage myMail = new MailMessage() ;
  myMail.From = "lyp@server1.domain" ;
  myMail.Subject = "取回您的密码" ;
  myMail.Body = "请牢记您的密码:" + m_strPassword ;
  myMail.To = a_strEmail ;
  SmtpMail.Send(myMail) ;
  }
  else
  {
  throw (new Exception("该用户不存在")) ;
  }
  }
  
  }
  }
  
  通过前面的学习,你可能已经能够看懂这个类定义的大部分内容,那些是成员变量,那些是属性,那
  
  些是方法都可以理解了,在这里需要解释的只有以下两部分内容,首先看这段代码:
  
  public enum CreateType
  {
  Create = 0 ,
  Modify
  }
  这段代码的作用是创建BBSUser类的一个枚举变量,写过c程序的朋友很容易理解,建立这个枚举变量
  
  的作用是简化记忆,用容易记忆的名称代替值,比如上边这个定义,当在方法CreateUser里作为第一个参
  
  数时,BBSUser.CreateType.Create实际的值是0,代表这个方法的目的是创建用户,而如果是
  
  BBSUser.CreateType.Modify,则代表目的是修改用户资料。显而易见,用if (a_enumCreateType ==
  
  BBSUser.CreateType.Create)这样的语句比用if (a_intCreateTYpe == 1)更容易记忆,最大限度减少出
  
  错的可能。
  
  另外一个要解释的内容是:你可能已经注意到在类的定义中有两个 GetUser方法的定义,其作用域和
  
  返回值都相同,只是参数类型不同。没错,这种做法叫重载(override),是并且只能是面向对象程序语言
  
  实现多态性的基本方法,那么这样做有什么好处呢?就是根据参数不同由类自己决定应该调用那个正确的
  
  方法,这样讲可能有些抽象,那么举个例子来说吧,这个GetUser方法的作用是取得用户资料,那么它可
  
  以通过用户名来取得资料,也可以通过用户ID来取得,如果不用函数的重载,那么我们需要建两个函数,
  
  可能一个叫GetUserFromName(string a_strName) , 而另一个是GetUserFormID(int a_intID),在调用时
  
  需要判断一下决定调用那个方法,象这样:
  if ( BBSUser.ID != "")
  {
  GetUserFromID(BBSUser.ID) ;
  }
  else if(BBSUser.Name != "")
  {
  GetUserFromName(BBSUser.Name) ;
  }
  
  以上两种方法孰优孰劣恐怕已经不用我说了吧。
  好了,既然我们已经创建好BBSUser对象,下面就可以利用它来进行对用户的操作了.
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

上一页  [1] [2]