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);
        }
    }
    

      

  • 相关阅读:
    Python使用MySQL数据库的方法以及一个实例
    【转载】关于Python中的yield
    利用KMeans聚类进行航空公司客户价值分析
    Python多线程编程
    搜索与排名思路整理
    两个UIView添加同一个手势只有最后一个有用
    缩放动画效果
    iOS通过UIAlertController弹出底部选择框来调用相机或者相册
    ios webview点击图片看大图效果及相应手势操作
    iOS开发:获取设备IP地址
  • 原文地址:https://www.cnblogs.com/XuPengLB/p/8182482.html
Copyright © 2011-2022 走看看