我试图为以下内容定义一个记录类型,而不是一个类
public class Contact
{
public string Name {get;set;}
public string Email {get;set;}
public string PhoneNo {get;set;}
public DateTime UpdatedAt {get;set;} = DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)
由于UpdatedAt是一个不可为空的字段,如果我使用记录的最基本的构造函数,我们DateTime.Now每次调用记录时都需要传递。还有其他方法吗?而不是这样做:
public record Contact(string Name, string Email,string PhoneNo, DateTime UpdatedAt);
var records = new Contact("My Name", "a@abc.com", "123456", DateTime.Now)
Run Code Online (Sandbox Code Playgroud)
您可以为一种record类型提供一个构造函数,因此添加一个接受所有 4 个属性的构造函数,但使其可为DateTime空并默认为null. 如果它为 null,则让构造函数使用DateTime.Now。例如:
public record Contact
{
public Contact(string name, string email, string phoneNo, DateTime? updatedAt = null)
{
this.Name = name;
this.Email = email;
this.PhoneNo = phoneNo;
this.UpdatedAt = (updatedAt ?? DateTime.Now);
}
public string Name {get;set;}
public string Email {get;set;}
public string PhoneNo {get;set;}
public DateTime UpdatedAt {get;set;};
}
Run Code Online (Sandbox Code Playgroud)