初始化对象时强制进行属性初始化

c#

using System.ComponentModel.DataAnnotations;

public class User
{
    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }
}

User user = new User
{
    LastName = "Jane"
};

FirstName并且LastName是必需的,为什么代码让我在没有 的情况下初始化用户FirstName?我怎样才能强制它也FirstName必须有一个值?

回答

您正在使用的 Required 属性与您正在执行的用法无关。它与ModelState. 你可以在这里阅读它。

在您的情况下,我建议您在 User 类中创建一个构造函数:

public User(string firstName, string lastName)
{
    // You may add here validation to make sure firstName and lastName are not nulls.

    FirstName = firstName;
    LastName = lastName;
}

这样,您在初始化 User 类时强制使用此构造函数。请注意,您可以创建多个构造函数以允许不同的构造函数初始化方式。

然后你可以这样使用它(C# 9.0-目标类型的新表达式):

User user = new ("Anders", "Jane");

C# 10那里将是需要与“必需的”关键字在类初始化属性的一种方式。可以这样做:

public class User
{
    public required string FirstName { get; set; }
    public required string LastName { get; set; }
}

您可以在“必需属性”部分中阅读更多信息。


以上是初始化对象时强制进行属性初始化的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>