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

    }

  • 相关阅读:
    阻止事件冒泡
    移动端开发
    angular6 管道多参数传输 Pipe
    在div上添加小三角
    angular6 使用@Input() @Output()
    angular6 想要获取页面某些事件 如 点击 window宽高等等
    如何将项目添加到git上
    使用vue-cli 搭建element-admin后台
    bootstrap4 常用样式类名 (供自己参考)
    键盘按下 keyCode 的值
  • 原文地址:https://www.cnblogs.com/movemoon/p/4164821.html
Copyright © 2011-2022 走看看