using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AccountManager
{
class Account
{
public Account()
{
}
public Account(string name,string account)
{
this.Name = name;
this.AccountNumber = account;
}
public string Name { get; set; }
public string AccountNumber { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AccountManager
{
//帐号事件声明
class AccountEventArgs:EventArgs
{
public AccountEventArgs()
{
}
public AccountEventArgs(string name)
{
this.Name = name;
}
public string Name { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AccountManager
{
class AccountManager
{
private List<Account> listAccounts=new List<Account>();
//使用SingleTon单例模式,
private static AccountManager instance;
public static AccountManager Instance
{
get
{
if (instance==null)
{
instance = new AccountManager();
}
return AccountManager.instance;
}
}
//构造函数设为私有,外部无法创建实例,保证在整个应用程序中只有一个AccountManager实例
private AccountManager()
{
}
//帐号事件声明,delegate匿名函数初始化,在调用的时候无需判断该事件是否为空
public event EventHandler<AccountEventArgs> AccountArise = delegate { };
public void AddAccount(string name,string number)
{
Account account = new Account(name, number);
this.listAccounts.Add(account);
AccountArise(this, new AccountEventArgs(name));
}
public void ShowAccounts()
{
int count = this.listAccounts.Count;
for (int i = 0; i < count; i++)
{
Console.WriteLine("姓名:" + listAccounts[i].Name + "\t帐号:" + listAccounts[i].AccountNumber);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AccountManager
{
class Program
{
static void Main(string[] args)
{
//订阅添加账户事件处理函数
AccountManager.Instance.AccountArise+=new EventHandler<AccountEventArgs>(Instance_AccountArise);
AccountManager.Instance.AddAccount("ganquanfu", "108253040226");
AccountManager.Instance.AddAccount("ligang", "108253040217");
AccountManager.Instance.AddAccount("huanghejun", "108253040209");
Console.WriteLine("显示所有的账户信息");
AccountManager.Instance.ShowAccounts();
Console.Read();
}
static void Instance_AccountArise(object sender, AccountEventArgs e)
{
Console.WriteLine("你刚刚添加的帐号姓名是:");
string name=e.Name;
Console.WriteLine(name);
}
}
}