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

    }

  • 相关阅读:
    SQL 在数据库中查找包含指定关键字的存储过程或函数
    根据名称查找存储过程或函数
    根据最后修改时间查找存储过程或函数
    SQL 数据过度事务模板
    Feeling something wrong
    发布一个倒计时软件(C# 开源)
    SpringBoot中的配置文件信息加密
    springboot中mysql连接配置
    React学习2_运行项目
    React学习0_文章目录
  • 原文地址:https://www.cnblogs.com/movemoon/p/4164821.html
Copyright © 2011-2022 走看看