文章出处:http://www.cnblogs.com/tristanguo/archive/2009/05/15/1457197.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            user u = new user() { userAge = 9, userName = "rree" };
            if (u.Checked().ToList().Count>0)
            {
                u.Checked().ToList().ForEach(d => Console.WriteLine(d));
            }

Console.Read();
        }
    }

public class user : EntityBase
    {
        public string userName { set; get; }
        public int userAge { set; get; }

public IEnumerable<String> Checked()
        {
            return new Validator<user>(this)
            .Validata(u => u.userAge > 10, "age must larger than 10")
            .Validata(u => u.userName.Length > 3, "user name must larger than 3")
            .ErrorList;
        
        }
    }

public abstract class EntityBase
    { }

public class Validator<T> where T : EntityBase
    {
        private T entity;
        List<string> errorList = new List<string>();

public Validator(T tEntity)
        {
            entity = tEntity;
        }

public List<string> ErrorList
        {
            get { return errorList; }
        }

public Validator<T> Validata(Predicate<T> predicate, string errMsg)
        {
            if (!predicate(entity))
            {
                this.errorList.Add(errMsg);
            }
            return this;
        }
    }

}

转载于:https://www.cnblogs.com/movemoon/p/4164821.html

实体验证---测试代码相关推荐

  1. 提高C++性能的编程技术笔记:设计优化/可扩展性/系统体系结构相关+测试代码

    1. 设计优化 我们可以粗略地将性能优化分为两种类型:编码优化和设计优化.编码优化定义为不需要完整理解要解决的问题或者应用程序的执行流程就能实施的优化.通过定义看出,编码优化用于局部代码,同时该过程不 ...

  2. 你必须了解的反射——反射来实现实体验证

    开发工作中,都会需要针对传入的参数进行验证,特别是针对实体进行验证,确保传入的参数格式正确.这里做了一个非常简单的组件进行验证.抛砖引玉,让大家深入思考下反射的应用. 需求 日常开发,都是通过API进 ...

  3. Windows/Linux TCP Socket网络编程简介及测试代码

    典型的网络应用是由一对程序(即客户程序和服务器程序)组成的,它们位于两个不同的端系统中.当运行这两个程序时,创建了一个客户进程和一个服务器进程,同时它们通过从套接字(socket)读出和写入数据在彼此 ...

  4. Ubuntu14.04下配置OpenGL及测试代码

    ubuntu14.04 64位下,默认是没有安装OpenGL相关依赖库的,若安装,则依次执行如下几条命令即可: $ sudo apt-get update $ sudo apt-get install ...

  5. 人脸识别引擎SeetaFaceEngine中Identification模块使用的测试代码

    人脸识别引擎SeetaFaceEngine中Identification模块用于比较两幅人脸图像的相似度,以下是测试代码: int test_recognize() {const std::strin ...

  6. 人脸识别引擎SeetaFaceEngine中Detection模块使用的测试代码

    人脸识别引擎SeetaFaceEngine中Detection模块用于人脸检测,以下是测试代码: int test_detection() {std::vector<std::string> ...

  7. python测试代码怎么写_Python 单元测试

    Test your software, or your users will. "Test ruthlessly. Don't make your users find bugs for y ...

  8. ASP.NET的MVC中使用Cookie做身份验证(附代码下载)

    场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...

  9. NHibernate.Validator 实体验证框架

    在系统开发时,很多情况下都需要对实体进行验证,比如规定某个属性值不能为空,Email的格式或者电话号码的格式是否正确.这种验证不应该只在UI层进行,主要有以下几方面的考虑:      1.如果每个层次 ...

最新文章

  1. python序列数据类型_python 数据类型 序列——列表
  2. jstat 内存泄漏_基于Java内存dump文件分析解决内存泄漏问题
  3. linux tac sed,Day08 - 一些常用 Linux 指令 - 3-7 (cat、tac、head、tail、vi、sed)
  4. wxWidgets:wxStdInputStream类用法
  5. PHP性能如何实现全面优化?
  6. [Java基础]Object类的常用方法
  7. ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折
  8. [转贴]基于HTTP的QQ协议
  9. Java实训项目1:GUI学生信息管理系统 - 实训概述
  10. 解决UnicodeDecodeError: 'ascii' codec can't decod...
  11. SAP License:SAP 移动类型详解
  12. 【MEMORY ALIGN】内存对齐
  13. [VB]多级目录创建函数,支持很深的目录创建。
  14. mysql ndb 测试_mysql ndb笔记
  15. Java多线程系列--“JUC线程池”
  16. C++输出UNICODE字符集
  17. mysql表单设计_【mysql】自定义表单系统 如何设计数据库
  18. 数字电子技术第十一版中文版_秦曾煌电工学·电子技术第7版下册题库和课后习题...
  19. 【c++11并不遥远】使xcode工程支持c++11特性
  20. oracle查看密码期限,oracle永久密码和登陆次数无限制设置

热门文章

  1. 数据库的持续集成和版本控制[转自INFOQ]
  2. sparksql优化_Spark SQL amp; Streaming
  3. nginx简介--理解nginx配置/模块/openresty
  4. (92)如何解决信号高扇出问题,例如复位信号
  5. (96)FPGA PLL与MMCM区别?
  6. java求二阶微积分方程特解_Scipy:实现微分方程的两种方法:两种不同的解决方案:回答...
  7. 有源蜂鸣器的驱动设计
  8. STM32 定时器输出pwm的频率计算方法 PWM 频率检测方法 直流电机的位置控制
  9. mini2440驱动分析之触摸屏
  10. Linux中断(interrupt)子系统之四:驱动程序接口层 中断通用逻辑层