Rolf b: Ducktype

Beitrag lesen

Geht in C# auch für Objekte ohne dynamic, per Reflection. Es zeigt aber, wie anstrengend der Ententanz gelegentlich sein kann.

public void foo(object duck)
{
   if (duck != null)
   {
      MethodInfo mi = duck.GetType().GetMethod("quak", Type.EmptyTypes);
      if (mi != null)
         mi.Invoke(duck, null);
   }
// Oder mit neueren C# Sprachmitteln auch als Einzeiler:
   duck?.GetType().GetMethod("quak", Type.EmptyTypes)?.Invoke(duck, null);
}