假设我有:
public class Animal
{
virtual public void Attack() {};
}
public class Lion : Animal
{
public override void Attack() { base.Attack(); }
}
public class Boar : Animal
{
public override void Attack() { base.Attack(); }
}
Run Code Online (Sandbox Code Playgroud)
以及这两种动物的容器:
Dictionary<int, Lion> lions;
Dictionary<int, Boar> boars;
Run Code Online (Sandbox Code Playgroud)
有没有办法投射“狮子”和“野猪”,以便我可以将它们传递给这样的函数?
void IterateTable(Dictionary<int, Animal> dictionary)
{
foreach(var entry in dictionary)
entry.Value.Attack();
}
Run Code Online (Sandbox Code Playgroud) c# ×1