gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:59:18 24 4
gpt4 key购买 nike

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"
};
FirstNameLastName是必需的,为什么代码让我在没有 FirstName 的情况下初始化用户?我怎样才能强制它 FirstName也必须有一个值?

最佳答案

您正在使用的 Required 属性与您正在执行的用法无关。它与ModelState有关.你可以阅读它here .
在您的情况下,我建议您在 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 - Target-typed new expressions ):
User user = new ("Anders", "Jane");
C# 10将有一种方法可以使用“required”关键字在类初始化时要求属性。可以这样做:
public class User
{
public required string FirstName { get; set; }
public required string LastName { get; set; }
}
您可以阅读更多 here在“必需属性”部分中。

关于c# - 初始化对象时强制进行属性初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68113374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com