单例:在程序的整个进程中只会被实例化一次
class Hero
{
//为了保证在编程过程中使用的是同一个对象,首先要把构造方法写成私有的,这样在类的外面就不能够创建对象啦
private Hero()
{}
//定义一个私有的静态全局变量来保存该类的唯一实例
private static Hero instance;
//定义一个只读静态对象
//且这个对象是在运行时创建的
public static Hero Instance
{
get
{
if(instance == null)
{
instance = new Hero();
}
return instance;
}
}
public int HP{get;set;}
}
class Enemy
{
public void AttackHero()
{
//英雄掉血
Hero.Instance.HP -=10;
}
public void MeicAttack()
{
Hero.Instance.HP -=20;
}
}
class Plane
{
public void Attack()
{
Hero.Instance.HP -=30;
}
}
class Program
{
static void Main(string[] args)
{
Hero.Instance.Hp = 100;
Enemy enemy = new ENemy();
enemy.AttackHero();
enemy.MegucAttack();
Plane plane = new Plane();
plane.Attack();
Console.WriteLine(Hero.Instance.HP);
}
}