通用程序返回结果类 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);
}
}
通用程序返回结果类 ApplicationResult.cs的更多相关文章
- [转]DbHelper通用数据库访问帮助类
之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...
- Sprite Kit教程:制作一个通用程序 2
注1:本文译自Sprite Kit Tutorial: Making a Universal App: Part 2 目录 动画的定义:可行性 属性列表 添加游戏逻辑 添加音效 何去何从 上一篇文章中 ...
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
C#字符串数组排序 //排序只带字符的数组,不带数字的 private string[] aa ={ "a ", "c ", "b & ...
- 【转】24Cxx 系列EEPROM通用程序及应用
关于I2C 学习的时候介绍得最多的就是24C02 这里存储EEPROM了,但学的时候基本只是讲讲简单的I2C 的总线数据传输而已,即使先gooogle上搜索也绝大部分这这样的文章,很少有说到如何在实际 ...
- 使用Prism6 建立 Windows 10 通用程序.
使用Prism6 建立 Windows 10 通用程序. 目标: 使用prism6,建立Windows 通用程序项目. 1, 解决方案—添加新建项目—通用—空白应用—输入名称—确定—确定 2 ,引用上 ...
- Win10通用程序 UWP版HtmlAgilityPack UWP应用使用示例
Win10 UWP版HtmlAgilityPack,UWP应用使用示例下载. Win10 发布了一个多星期,sdk是随着一起发布的,我安装好vs2015和sdk 开发UWP 通用程序. 在做网络解析的 ...
- 使用 Visual Studio 生成通用的 XAML 应用程序 (Windows Phone 和 Windows 通用程序)
在Build会议上,我们发布了新的版本---Windows Phone 8.1. Windows 8.1 平台.作为开发人员,这意味着您现在可以生成 XAML 和 HTML 的通用程序,并通过分享大量 ...
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...
- wemall app商城源码中基于PHP的通用的树型类代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
随机推荐
- 关于Weex你需要知道的一切
QCon第一天,GMTC全球移动技术大会联席主席.手淘技术老大庄卓然(花名南天)在Keynote上宣布跨平台开发框架Weex开始内测,并将于6月份开源,同时他们也放出官网:http://alibaba ...
- JS实现document.ready
通常我们想要在页面内容加载完成后运行 JS 时,都会使用 window.onload 来处理,比如: window.onload = function(){ alert('Hello World!') ...
- 高性能计算linux集群常用配置
1.检查超线程 查看线程数:grep siblings /proc/cpuinfo |uniq 查看物理核心数:grep cores /proc/cpuinfo |uniq 2.检查操作系统版本 ca ...
- linux常用的软件更新命令
apt-get在ubuntu系统中用于安装和更新软件的命令,和yum相比,它不需要安装yum源, 可以直接使用,命令简单又好用. apt-get install package 安装package a ...
- 使用json对象要注意的地方
本人是初学渣渣,使用json过程中遇到常见的问题,总结如下: 1--json对象内部不要有注释,虽然不报错,但是会使得渲染界面失败: 2--json对象是没有length属性的,若想获取到这个leng ...
- shell 冒号
: ${TEST_LOOP:='1'} 如果不在前面加上:(冒号)命令,那么就会把${TEST_LOOP:='1'}本身当做一个命令来执行,报错是肯定的. [root@node56 ~]# : abc ...
- Golang对文件读写操作
package main import ( "bufio" "fmt" "io" "os" ) //写 func Wri ...
- VMware环境安装MacOS
环境: win10专业版 VMware 14 Pro 开始吧 1. 停止服务 2. 解压并管理员权限运行unlocker,目的是使得 win10 环境下的 VMWare14Pro 支持 mac 系统的 ...
- Cannot resolve reference to bean 'sqlSessionFactory' while setting bean
今天下载公司以前的一个项目,要和现在的项目进行整合,下载一切顺利,但在开发机器上一跑,憋了. 有两种日志,两种报错:一个是cannot resolve reference to bean 'sqlSe ...
- be动词
编辑 讨论 be动词,意思和用法很多,一般的意思是:是,此种用法,有多种变化形式,is,am,are,was,were,being,been,to be.另外,be动词还有成为的意思.根据句子中不同的 ...