UML中`age: Integer{0<=age<=150}`的含义及C#代码转换方法
UML属性
age: Integer{0<=age<=150}的含义及C#实现 含义解析
这是UML类图中为属性定义的约束规则:
age是属性名称Integer表示属性的类型为整数{0<=age<=150}是约束条件,要求age的取值必须介于0到150之间(包含0和150),用来限制属性的合法取值范围,避免无效数据。
C#代码实现
根据不同使用场景,有几种常见实现方式:
1. 私有字段+公共属性(带set校验)
适合属性需要在对象生命周期内修改的场景,通过set访问器校验取值合法性:
public class Person { private int _age; public int Age { get => _age; set { if (value < 0 || value > 150) throw new ArgumentOutOfRangeException(nameof(value), "年龄必须在0到150之间"); _age = value; } } }
2. 初始化只读属性(C# 9+)
如果属性只需要在对象初始化时设置,后续不允许修改,可使用init访问器:
public class Person { private int _age; public int Age { get => _age; init { if (value < 0 || value > 150) throw new ArgumentOutOfRangeException(nameof(value), "年龄必须在0到150之间"); _age = value; } } }
3. 数据注解验证(适合框架场景)
在ASP.NET等框架中,可使用数据注解实现验证,需引用System.ComponentModel.DataAnnotations命名空间:
using System.ComponentModel.DataAnnotations; public class Person { [Range(0, 150, ErrorMessage = "年龄必须在0到150之间")] public int Age { get; set; } }
内容的提问来源于stack exchange,提问作者Alice
相关产品推荐
相关产品推荐

