用实际问题说明委托的概念及应用
2011-12-25 14:29
381 查看
刚学到委托的概念,在园子里找了一些文章看了后,自己对委托也有了基本的了解。下面我结合实际情况,说下我对委托的理解,不足之处。还请大家多多指正,言归正传:
早上刚到公司,手机收到一条短信。您的手机已欠费,请您尽快续费!这下怎么办?自己走不开,又不能让手机欠费,于是我在QQ联系到了一个朋友,我把手机号码和需要缴多少费用告诉了他,委托他帮我代交下手机费,完了再给我个信息。至于他用什么方法去缴费,我不清楚,我清楚的是必须告诉他我的手机卡号和需要缴纳的费用,并且缴完后给我一个信息。
下面用代码来说明委托在这件事情上的应用。
1、首先定义一个手机卡号类
1 /// <summary>
2 /// 定义一个手机卡类
3 /// </summary>
4 public class PhoneCard
5 {
6 private string _cardno;
7 private float _balance;
8
9 /// <summary>
10 /// 卡号
11 /// </summary>
12 public string CardNo
13 {
14 get { return _cardno; }
15 set { _cardno = value; }
16 }
17
18 /// <summary>
19 /// 余额
20 /// </summary>
21 public float Balance
22 {
23 get { return _balance; }
24 set { _balance = value; }
25 }
26
27 /// <summary>
28 /// 构造函数
29 /// </summary>
30 /// <param name="cardno">卡号</param>
31 public PhoneCard(string cardno)
32 {
33 this._cardno = cardno;
34 }
35
36 /// <summary>
37 /// 冲值方法
38 /// </summary>
39 /// <param name="phonecard">需要冲值的手机卡</param>
40 /// <param name="money">充值金额</param>
41 /// <param name="delta">调用委托</param>
42 /// <returns>充值结果信息</returns>
43 public string Delta(PhoneCard phonecard, float money, Delta delta)
44 {
45 return delta(phonecard, money);
46 }
47
48 /// <summary>
49 /// 重写ToString方法
50 /// </summary>
51 /// <returns>返回具体的手机号</returns>
52 public override string ToString()
53 {
54 return this.CardNo;
55 }
56 }
2、定义一个为手机卡冲值的委托代理
/// <summary>
/// 定义一个为手机卡冲值的委托代理
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">冲值金额</param>
/// <returns>充值结果信息</returns>
public delegate string Delta(PhoneCard phoneCard,float money);
3、定义一个封装了各种充值方式的静态类
/// <summary>
/// 封装了各种充值方式的静态类
/// </summary>
public static class DeltaType
{
/// <summary>
/// 在网银上进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseInternetBanking(PhoneCard phoneCard, float money)
{
string result = string.Empty;
phoneCard.Balance += money;
result = string.Format("手机号为{0}的手机成功冲值了{1}元,卡号余额为{2},该冲值方式所使用的是网上银行冲值.", phoneCard, money, phoneCard.Balance);
return result;
}
/// <summary>
/// 在营业大厅进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseBusinessHall(PhoneCard phoneCard, float money)
{
string result = string.Empty;
return result;
}
/// <summary>
/// 在支付宝上进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseAlipay(PhoneCard phoneCard, float money)
{
string result = string.Empty;
return result;
}
}
4、在aspx.cs页面中调用
using System;
using System.ComponentModel;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
PhoneCard phonecard = new PhoneCard("13035068762");
Delta delta = new Delta(DeltaType.DeltaUseInternetBanking);
Response.Write(phonecard.Delta(phonecard, 30, delta));
Response.Write("<br />");
Response.Write(phonecard.Delta(phonecard, -10, delta));
}
}
早上刚到公司,手机收到一条短信。您的手机已欠费,请您尽快续费!这下怎么办?自己走不开,又不能让手机欠费,于是我在QQ联系到了一个朋友,我把手机号码和需要缴多少费用告诉了他,委托他帮我代交下手机费,完了再给我个信息。至于他用什么方法去缴费,我不清楚,我清楚的是必须告诉他我的手机卡号和需要缴纳的费用,并且缴完后给我一个信息。
下面用代码来说明委托在这件事情上的应用。
1、首先定义一个手机卡号类
1 /// <summary>
2 /// 定义一个手机卡类
3 /// </summary>
4 public class PhoneCard
5 {
6 private string _cardno;
7 private float _balance;
8
9 /// <summary>
10 /// 卡号
11 /// </summary>
12 public string CardNo
13 {
14 get { return _cardno; }
15 set { _cardno = value; }
16 }
17
18 /// <summary>
19 /// 余额
20 /// </summary>
21 public float Balance
22 {
23 get { return _balance; }
24 set { _balance = value; }
25 }
26
27 /// <summary>
28 /// 构造函数
29 /// </summary>
30 /// <param name="cardno">卡号</param>
31 public PhoneCard(string cardno)
32 {
33 this._cardno = cardno;
34 }
35
36 /// <summary>
37 /// 冲值方法
38 /// </summary>
39 /// <param name="phonecard">需要冲值的手机卡</param>
40 /// <param name="money">充值金额</param>
41 /// <param name="delta">调用委托</param>
42 /// <returns>充值结果信息</returns>
43 public string Delta(PhoneCard phonecard, float money, Delta delta)
44 {
45 return delta(phonecard, money);
46 }
47
48 /// <summary>
49 /// 重写ToString方法
50 /// </summary>
51 /// <returns>返回具体的手机号</returns>
52 public override string ToString()
53 {
54 return this.CardNo;
55 }
56 }
2、定义一个为手机卡冲值的委托代理
/// <summary>
/// 定义一个为手机卡冲值的委托代理
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">冲值金额</param>
/// <returns>充值结果信息</returns>
public delegate string Delta(PhoneCard phoneCard,float money);
3、定义一个封装了各种充值方式的静态类
/// <summary>
/// 封装了各种充值方式的静态类
/// </summary>
public static class DeltaType
{
/// <summary>
/// 在网银上进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseInternetBanking(PhoneCard phoneCard, float money)
{
string result = string.Empty;
phoneCard.Balance += money;
result = string.Format("手机号为{0}的手机成功冲值了{1}元,卡号余额为{2},该冲值方式所使用的是网上银行冲值.", phoneCard, money, phoneCard.Balance);
return result;
}
/// <summary>
/// 在营业大厅进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseBusinessHall(PhoneCard phoneCard, float money)
{
string result = string.Empty;
return result;
}
/// <summary>
/// 在支付宝上进行充值
/// </summary>
/// <param name="phoneCard">手机卡</param>
/// <param name="money">充值金额</param>
/// <returns>充值结果信息</returns>
public static string DeltaUseAlipay(PhoneCard phoneCard, float money)
{
string result = string.Empty;
return result;
}
}
4、在aspx.cs页面中调用
using System;
using System.ComponentModel;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
PhoneCard phonecard = new PhoneCard("13035068762");
Delta delta = new Delta(DeltaType.DeltaUseInternetBanking);
Response.Write(phonecard.Delta(phonecard, 30, delta));
Response.Write("<br />");
Response.Write(phonecard.Delta(phonecard, -10, delta));
}
}
相关文章推荐
- 问题四,关于概念的实际应用(代码题)。公司面试99%要考的,有答案!
- Web实际应用中的编码问题
- FSMT实际应用遇到的问题
- 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。
- 联想教育应用使用说明(7.6版本)——第5章 常见的问题与解答
- Matlab与OpenCV在实际应用中的选择问题
- 关于一个应用分枝界限法解决最小顶点覆盖问题的程序说明
- 应用服务器、开源框架常见实际问题记录
- 应用 Python 解决一些实际问题
- sweet alert dialog 在android studio应用问题说明详解
- 应用 Python 解决一些实际问题
- 委托--事件--基础以及在现在做的项目上的实际应用(三)
- 联想教育应用使用说明(7.6版本)——第5章 常见的问题与解答
- BigDecimal在实际项目的应用及遇到的问题(转)
- MySQL实际应用中遇到的锁问题
- Matlab与OpenCV在实际应用中的选择问题
- 函数指针和指针函数区别以及如何应用,举例说明,要如何理解他们的概念
- 通过委托的实际应用理解委托
- RMI结合HAProxy的实际应用及问题解决的思路
- 安卓中@id与@+id的区别与实际应用中的@id报错问题