里氏替换原则
概念
using System;namespace Enumeration { enum E_EXAMPLE { A, // 0 如果不声明值 则第一个值默认是0 下面依次累加 B, // 1 C, // 2 D = 100, // 如果在中途赋值 后面的值基于赋值后的值进行累加 E, // 101 F, // 102 } class GameObject { } class Player : GameObject { public void Attack () { Console.WriteLine("player atk"); } } class Mosnster : GameObject { public void Attack () { Console.WriteLine("mosnster atk"); } } class Boss : GameObject { public void Attack () { Console.WriteLine("boss atk"); } } class Enumeration { static void Main (string[] args) { GameObject player = new Player(); GameObject monster = new Mosnster(); GameObject boss = new Boss(); GameObject[] objects = new GameObject[] { new Player(), new Mosnster { }, new Boss { } }; // is: 判断一个对象是否是指定类对象 // 返回: bool true false if (player is Player) { Console.WriteLine(1); (player as Player).Attack(); } else { Console.WriteLine(2); } // as : 将一个对象转换为指定类对象 // 返回: 指定类对象 失败时返回 null Player p = monster as Player; Console.WriteLine(p); } }}