zoukankan      html  css  js  c++  java
  • 通用程序返回结果类 ApplicationResult.cs

    using System.Collections.Generic;
    using System.Linq;
    
    namespace System
    {
        /// <summary>
        /// 表示应用程序在执行后的结果。
        /// </summary>
        public class ApplicationResult
        {
            static readonly ApplicationResult _success = new ApplicationResult(true);
    
            /// <summary>
            /// 初始化 <see cref="ApplicationResult"/> 类的新实例。
            /// </summary>
            /// <param name="success">表示应用程序执行的结果是否成功。</param>
            protected ApplicationResult(bool success)
            {
                this.Succeeded = success;
            }
    
            /// <summary>
            /// 使用带有错误的字符串数组初始化 <see cref="ApplicationResult"/> 类的新实例。
            /// </summary>
            /// <param name="errors">可选的错误字符串数组。</param>
            public ApplicationResult(params string[] errors)
                : this(errors.AsEnumerable())
            {
    
            }
    
            /// <summary>
            /// 使用带有错误的字符串集合初始化 <see cref="ApplicationResult"/> 类的新实例。
            /// </summary>
            /// <param name="errors">错误字符串集合。</param>
            public ApplicationResult(IEnumerable<string> errors)
                : this(false)
            {
                this.Errors = errors;
            }
    
            /// <summary>
            /// 获取一个布尔值,表示当前的执行是否成功。
            /// </summary>
            /// <value>
            ///   若执行成功,则为 <c>true</c>;否则为 <c>false</c>。
            /// </value>
            public bool Succeeded { get; private set; }
    
            /// <summary>
            /// 获取一个字符串集合,表示返回的错误信息。
            /// </summary>
            /// <value>
            /// 这是一个集合,包含所有的错误信息。
            /// </value>
            public IEnumerable<string> Errors { get; private set; }
    
            /// <summary>
            /// 表示当前操作执行成功。
            /// </summary>
            public static ApplicationResult Success => _success;
    
            /// <summary>
            /// 表示当前操作执行失败。
            /// </summary>
            /// <param name="errors">因导致失败的错误字符串数组。</param>
            /// <returns>当前的 <see cref="ApplicationResult"/> 实例。</returns>
            public static ApplicationResult Failed(params string[] errors) => new ApplicationResult(errors);
    
            /// <summary>
            /// 表示当前操作执行失败。
            /// </summary>
            /// <param name="errors">因导致失败的错误字符串集合。</param>
            /// <returns>当前的 <see cref="ApplicationResult"/> 实例。</returns>
            public static ApplicationResult Failed(IEnumerable<string> errors)
                => Failed(errors.ToArray());
        }
    
    
        /// <summary>
        /// 表示应用程序在执行后的结果并附带自定义对象。
        /// </summary>
        /// <typeparam name="T">一个可在结果返回的数据类型。</typeparam>
        /// <seealso cref="ApplicationResult" />
        public class ApplicationResult<T> : ApplicationResult
        {
            /// <summary>
            /// 使用自定义数据初始化 <see cref="ApplicationResult{T}"/> 类的新实例。
            /// </summary>
            /// <param name="data">这是返回的数据。</param>
            protected ApplicationResult(T data)
            {
                this.Data = data;
            }
    
            /// <summary>
            /// 初始化 <see cref="ApplicationResult{T}"/> 类的新实例。
            /// </summary>
            /// <param name="success">表示应用程序执行的结果是否成功。</param>
            protected ApplicationResult(bool success) : base(success) { }
    
            /// <summary>
            /// 获取一个泛型的值,表示应用程序成功或失败时所需要的任意数据值。
            /// </summary>
            /// <value>
            /// 任意数据。
            /// </value>
            public T Data { get; private set; }
    
            /// <summary>
            /// 设置成功或失败时想要在返回时获取的数据。
            /// </summary>
            /// <param name="data">要设置的数据。</param>
            /// <returns><see cref="ApplicationResult{T}"/> 实例。</returns>
            public ApplicationResult<T> SetData(T data)
            {
                this.Data = data;
                return this;
            }
    
            /// <summary>
            /// 表示当前操作执行成功。
            /// </summary>
            /// <returns><see cref="ApplicationResult{T}"/> 实例。</returns>
            public static new ApplicationResult<T> Success => new ApplicationResult<T>(true);
        }
    }
    

      

  • 相关阅读:
    2017.10.12
    2017.10.25
    2017.10.24
    进度条06
    课堂练习(返回一个环状一维整数数组中最大子数组的和)
    团队项目成员和题目
    团队作业--四则运算网页版
    进度条04
    个人作业(最大子数组)
    进度条03
  • 原文地址:https://www.cnblogs.com/XuPengLB/p/8182482.html
Copyright © 2011-2022 走看看