.NET7的required属性与之前版本相比有哪些显著差异?

2026-03-30 15:110阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计670个文字,预计阅读时间需要3分钟。

.NET7的required属性与之前版本相比有哪些显著差异?

还是先看看再说。

  还是先看看C#中属性的这定义,在初始化和访问上有哪些方式,就能看出required属性有什么不一样的地方了。

  属性,是封装字段的,通过get和set访问器可以很好地验证数据的有效性。

public record Order_00
{
public Guid Id { get; set; }
private string? _orderNo;
public string? OrderNo
{
get => _orderNo;
set
{
if (!string.IsNullOrEmpty(value) && value.Length >= 8)
{
_orderNo = value;
}
else
{
throw new ApplicationException("OrderNo is error");
}
}
}
public DateTime OrderDate { get; set; }
}

  属性差异访问修饰符,如下面代码,当把Id的set定义成private后,只能在Order_01内访问到,构造也好,内部方法也好,默认值也好,都可以赋值操作,更可以验证。

阅读全文

本文共计670个文字,预计阅读时间需要3分钟。

.NET7的required属性与之前版本相比有哪些显著差异?

还是先看看再说。

  还是先看看C#中属性的这定义,在初始化和访问上有哪些方式,就能看出required属性有什么不一样的地方了。

  属性,是封装字段的,通过get和set访问器可以很好地验证数据的有效性。

public record Order_00
{
public Guid Id { get; set; }
private string? _orderNo;
public string? OrderNo
{
get => _orderNo;
set
{
if (!string.IsNullOrEmpty(value) && value.Length >= 8)
{
_orderNo = value;
}
else
{
throw new ApplicationException("OrderNo is error");
}
}
}
public DateTime OrderDate { get; set; }
}

  属性差异访问修饰符,如下面代码,当把Id的set定义成private后,只能在Order_01内访问到,构造也好,内部方法也好,默认值也好,都可以赋值操作,更可以验证。

阅读全文