/// <summary>
 ///   创建一个在目标 <see cref="T:UnityEngine.TaskExtension.UnityTask`1" /> 成功执行时异步执行的延续任务。
 /// </summary>
 /// <typeparam name="TIn">该任务的参数的类型。</typeparam>
 /// <typeparam name="TResult">该任务的结果的类型。</typeparam>
 /// <param name="task">目标<see cref="T:UnityEngine.TaskExtension.UnityTask`1" /></param>
 /// <param name="continuation">
 ///   在 <see cref="T:UnityEngine.TaskExtension.UnityTask`1" /> 完成时要运行的操作。
 ///    在运行时,委托将作为一个参数传递给完成的任务。
 /// </param>
 /// <returns>
 ///   一个新的延续 <see cref="T:UnityEngine.TaskExtension.UnityTask`1" />。
 /// </returns>
 /// <exception cref="T:System.ArgumentNullException">
 ///   <paramref name="continuation" /> 参数为 <see langword="null" />。
 /// </exception>
 public static UnityTask <TResult> OnSuccess <TIn, TResult>(this UnityTask <TIn> task,
                                                            Func <UnityTask <TIn>, TResult> continuation)
 {
     return(task.OnSuccess((UnityTask t) => continuation((UnityTask <TIn>)t)));
 }
 /// <summary>
 ///   创建一个在目标 <see cref="T:UnityEngine.TaskExtension.UnityTask`1" /> 成功执行时异步执行的延续任务。
 /// </summary>
 /// <typeparam name="TIn">该任务的参数的类型。</typeparam>
 /// <param name="task">目标<see cref="T:UnityEngine.TaskExtension.UnityTask`1" /></param>
 /// <param name="continuation">
 ///   在 <see cref="T:UnityEngine.TaskExtension.UnityTask`1" /> 完成时要运行的操作。
 ///    在运行时,委托将作为一个参数传递给完成的任务。
 /// </param>
 /// <returns>
 ///   一个新的延续 <see cref="T:UnityEngine.TaskExtension.UnityTask" />。
 /// </returns>
 /// <exception cref="T:System.ArgumentNullException">
 ///   <paramref name="continuation" /> 参数为 <see langword="null" />。
 /// </exception>
 public static UnityTask OnSuccess <TIn>(this UnityTask <TIn> task, Action <UnityTask <TIn> > continuation)
 {
     return(task.OnSuccess((UnityTask t) => continuation((UnityTask <TIn>)t)));
 }