public static void GiveFood(Mammal mammal) { for ( var currentType = mammal.GetType(); typeof(Mammal).IsAssignableFrom(currentType); currentType = currentType.BaseType) { if (map.ContainsKey(currentType)) { map[currentType](mammal); return; } } DefaultGiveFood(mammal); }
public static void GiveFood(Mammal mammal) { map[mammal.GetType()](mammal); }