Delegate function dynamic invoke output object

See here:

You need to cast your object to IList<object>

This works:
2021-01-14 17_07_36-Grasshopper - unnamed

  private void RunScript(List<Point3d> Pnts, List<Vector3d> Tngnt, ref object C, ref object L, ref object D)
  {
    Rhino.NodeInCode.ComponentFunctionInfo TanCurveInfo = Rhino.NodeInCode.Components.FindComponent("TangentCurve");
    System.Delegate TanCurve = TanCurveInfo.Delegate;
    IList<object> results = (IList<object>) TanCurve.DynamicInvoke(Pnts, Tngnt, 0.5, 3);    
    C = results[0];
    L = results[1];
    D = results[2];
  }