作者:wgol992015 | 来源:互联网 | 2023-10-13 10:34
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; }
}
您可以在“必需属性”部分中阅读更多信息。