• 实体验证---测试代码


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

    }

  • 相关阅读:
    怀念
    红颜知己
    我的孩子们
    10月22日
    Movies
    vue返回上一页效果(this.$router.go、)
    Java随笔
    Java随笔
    java随笔
    java随笔
  • 原文地址:https://www.cnblogs.com/movemoon/p/4164821.html
Copyright © 2020-2023  润新知