添加Lesson4
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,70 @@
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user