public void Do(IDo o, Doer doer) { var type = o.GetType(); if (type == typeof(A)) { doer.Do((A)o); } else if (type == typeof(B)) { doer.Do((B)o); } else if (type == typeof(C)) { doer.Do((C)o); } else if (type == typeof(D)) { doer.Do((D)o); } else if (type == typeof(E)) { doer.Do((E)o); } else if (type == typeof(F)) { doer.Do((F)o); } }
public void Do(IDo o, Doer doer) { Action <Doer, object> actor; s_dict.TryGetValue(o.GetType(), out actor); actor(doer, o); }