public static async System.Threading.Tasks.Task <R> MatchAsync <R>(this IPostQuestionResult self, System.Func <QuestionPosted, System.Threading.Tasks.Task <R> > whenQuestionPosted, System.Func <QuestionNotPosted, System.Threading.Tasks.Task <R> > whenQuestionNotPosted, System.Func <QuestionValidationFailed, System.Threading.Tasks.Task <R> > whenQuestionValidationFailed) { switch ((self)) { case QuestionPosted questionposted: return(await whenQuestionPosted(questionposted)); case QuestionNotPosted questionnotposted: return(await whenQuestionNotPosted(questionnotposted)); case QuestionValidationFailed questionvalidationfailed: return(await whenQuestionValidationFailed(questionvalidationfailed)); default: throw new System.NotSupportedException("This switch statement should be exhaustive"); } }
public static IPostQuestionResult Match(this IPostQuestionResult self, System.Func <QuestionPosted, IPostQuestionResult> whenQuestionPosted, System.Func <QuestionNotPosted, IPostQuestionResult> whenQuestionNotPosted, System.Func <QuestionValidationFailed, IPostQuestionResult> whenQuestionValidationFailed) { switch ((self)) { case QuestionPosted questionposted: return(whenQuestionPosted(questionposted)); case QuestionNotPosted questionnotposted: return(whenQuestionNotPosted(questionnotposted)); case QuestionValidationFailed questionvalidationfailed: return(whenQuestionValidationFailed(questionvalidationfailed)); default: throw new System.NotSupportedException("This switch statement should be exhaustive"); } }