public static async System.Threading.Tasks.Task <R> MatchAsync <R>(this ICreateNewQuestionResult 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 ICreateNewQuestionResult Match(this ICreateNewQuestionResult self, System.Func <QuestionPosted, ICreateNewQuestionResult> whenQuestionPosted, System.Func <QuestionNotPosted, ICreateNewQuestionResult> whenQuestionNotPosted, System.Func <QuestionValidationFailed, ICreateNewQuestionResult> 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"); } }