所以我正在创建一个新对象并从其他函数设置其属性。我需要在应用值之前检查它们是否为null。我该如何处理?
Customer = new Customer (
name = requestCall.Name,
age = requestCall.Age.ofType<DateTime>().DOB
)
在申请之前,如何检查requestCall.Age或requestCall.Name是否为空?
答案 0 :(得分:5)
根据您的情况,您可以使用ternary operator
name = requestCall.Name == null ? something : something_else
name = requestCall.Name ?? something
答案 1 :(得分:2)
变式1:
Customer = new Customer(
name = requestCall.Name ?? "default name",
age = requestCall.Age == null ? (some default date) : requestCall.Age.ofType<DateTime>().DOB
);
变式2:
Customer = requestCall == null ? null : new Customer(
name = requestCall.Name,
age = requestCall.Age.ofType<DateTime>().DOB
);
当然,您可以使用if
,在我看来,它更好:
Customer customer;
if (requestCall != null)
{
customer = new Customer();
if (requestCall.Name != null)
{
customer.Name = requestCall.Name;
}
// etc.
}
else
{
customer = null;
}
答案 2 :(得分:1)
只需制作一个requestCall.IsValid()
方法(恰当地命名为适合您的用法)并使用此方法验证您是否能够建立新客户。
我认为当您确定需要添加的其他内容时,逻辑会增长,这将减少您必须执行的更新量。
作为旁注:您可能希望创建一个以requestCall
作为参数的构造函数。
答案 3 :(得分:0)
试试这个
Customer = new Customer (
name = requestCall.Name ?? string.Empty,
age = requestCall.Age.ofType<DateTime>().DOB ?? DateTime.Now
)
答案 4 :(得分:0)
将其作为
requestCall.Name ?? "soome text",
或!string.IsNullOrEmpty(requestCall.Name) ? requestCall.Name : "soome text"
,
并将整数检查为null
`age = requestCall.Age == null ? (default) : requestCall.Age.ofType<DateTime>().DOB`