zoukankan      html  css  js  c++  java
  • 实体验证---测试代码

    文章出处: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;
            }
        }

    }

  • 相关阅读:
    嵌入式linux问题杂锦
    QT creator 调试问题
    torcs代码
    ubuntu12.04安装KDevelop
    ubuntu12.04LTS安装以及卸载 QT4.8.6和QT creator2.5.2
    用vs2010编译vs2013建的工程
    mysql+matlab配置
    流形学习笔记
    可用的rtmp互联网地址
    信用卡术语
  • 原文地址:https://www.cnblogs.com/movemoon/p/4164821.html
Copyright © 2011-2022 走看看