C# 11 中的必需与 [必需]

问题描述 投票:0回答:1

C# 11 引入了必需的修饰符,可以在下面使用:

    public required string FirstName { get; init; }
    public required string LastName { get; init; }
[Required]
public required string FirstName { get; init; }

只是想了解 [Required] 属性和 required 修饰符之间的区别。 看了文档没看懂

尝试阅读文档

c# .net asp.net-mvc asp.net-core
1个回答
2
投票

虽然 Required 属性和 required 修饰符具有相似的发音名称,但它们有不同的用途。 Required 属性用于数据验证,而 required 修饰符用于不变性实施。它们在某些情况下可以一起使用,但不能互换。 C# 11 中的属性和必需的修饰符有不同的用途。

Required 属性用于将属性标记为数据验证所需的属性。它通常用于数据绑定和模型验证的上下文中。当应用于属性时,Required 属性指定属性必须具有非空值才能通过验证。这通常由验证框架强制执行,例如 ASP.NET Core 的模型验证。

C# 11 中的required 修饰符用于指示必须在对象初始化期间设置属性。这是一种通过在初始化期间只允许设置一次属性来在类中强制执行不变性的方法。这是通过使用 init 关键字使属性的设置访问器仅在对象初始化期间可用来实现的。

© www.soinside.com 2019 - 2024. All rights reserved.