C# Winform 定义Models字段 属性限制输入

http://www.voidcn.com/article/p-ygmrcitj-bye.html

 

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

public class Person {
private int m_iAge = 1;
private string m_sFirstname = "Unknown";
private string m_sLastname = "";
private string m_sGroupCode = "AAA";

[Required(ErrorMessage = "Age is a required field.")]
[Range(1, 100, ErrorMessage = "A persons age must be between 1 and 100.")]
public int Age
{
    get { return m_iAge; }
    set { m_iAge = value; }
}

[Required(ErrorMessage = "Firstname is a required field.")]
public string Firstname
{
    get { return m_sFirstname; }
    set { m_sFirstname = value; }
}

public string Lastname
{
    get { return m_sLastname; }
    set { m_sLastname = value; }
}

[StringLength(3, MinimumLength = 3)]
public string GroupCode
{
    get { return m_sGroupCode; }
    set { m_sGroupCode = value; }
}

public void Validate() {
    ValidationContext context = new ValidationContext(this, serviceProvider: null, items: null);
    List<ValidationResult> results = new List<ValidationResult>();
    bool isValid = Validator.TryValidateObject(this, context, results, true);

    if (isValid == false) {
        StringBuilder sbrErrors = new StringBuilder();
        foreach (var validationResult in results) {
            sbrErrors.AppendLine(validationResult.ErrorMessage);
        }
        throw new ValidationException(sbrErrors.ToString());
    }
}
}



使用
   lstStatus.Items.Add("Creating a good person");
            Person Jeff = new Person();
            Jeff.Age = 33;
            Jeff.Firstname = "Jeff";
            Jeff.Lastname = "Jefferson";
            Jeff.GroupCode = "JJJ";
            // LOOK! This line was added
            Jeff.Validate();

            CollectionOfPeople.Add(Jeff);


posted @   LuoCore  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示