71 lines
1.7 KiB
C#
71 lines
1.7 KiB
C#
|
|
using System;
|
||
|
|
using System.Collections;
|
||
|
|
using System.Security.Cryptography.X509Certificates;
|
||
|
|
using System.Threading;
|
||
|
|
namespace Lesson4_Hashtable练习题
|
||
|
|
{
|
||
|
|
//因为一般管理器都是唯一的,所以做成单例模式的对象
|
||
|
|
class MonsterMgr
|
||
|
|
{
|
||
|
|
private static MonsterMgr instance = new MonsterMgr();
|
||
|
|
private Hashtable monstersTable = new Hashtable();
|
||
|
|
private MonsterMgr()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
public static MonsterMgr Instance
|
||
|
|
{
|
||
|
|
get
|
||
|
|
{
|
||
|
|
return instance;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private int monsterID = 0;
|
||
|
|
|
||
|
|
public void AddMonster()
|
||
|
|
{
|
||
|
|
|
||
|
|
Monster monster = new Monster(monsterID);
|
||
|
|
Console.WriteLine("创建了怪物"+monsterID);
|
||
|
|
monsterID++;
|
||
|
|
monstersTable.Add(monster.id, monster);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void DeleteMonster(int monsterID)
|
||
|
|
{
|
||
|
|
if (monstersTable.ContainsKey(monsterID))
|
||
|
|
{
|
||
|
|
(monstersTable[monsterID] as Monster).Dead();
|
||
|
|
monstersTable.Remove(monsterID);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Monster
|
||
|
|
{
|
||
|
|
public int id;
|
||
|
|
public Monster(int id)
|
||
|
|
{
|
||
|
|
this.id = id;
|
||
|
|
}
|
||
|
|
public void Dead()
|
||
|
|
{
|
||
|
|
Console.WriteLine("怪物"+id+"死亡");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Program
|
||
|
|
{
|
||
|
|
static void Main(string[] args)
|
||
|
|
{
|
||
|
|
MonsterMgr.Instance.AddMonster();
|
||
|
|
MonsterMgr.Instance.AddMonster();
|
||
|
|
MonsterMgr.Instance.AddMonster();
|
||
|
|
MonsterMgr.Instance.AddMonster();
|
||
|
|
MonsterMgr.Instance.AddMonster();
|
||
|
|
MonsterMgr.Instance.DeleteMonster(0);
|
||
|
|
MonsterMgr.Instance.DeleteMonster(3);
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|