您的位置:首页 > 其它

用实际问题说明委托的概念及应用

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));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: