赋值前检查value是否为空

本文关键字:是否 value 检查 赋值 | 更新日期: 2023-09-27 17:52:46

所以我正在创建一个新对象并从其他函数设置其属性。在应用这些值之前,我需要检查它们是否为空。我该怎么做呢?

Customer = new Customer (
     name = requestCall.Name, 
     age = requestCall.Age.ofType<DateTime>().DOB
    )

我如何检查如果requestCall。年龄或requestCall。申请前名称不为空?

赋值前检查value是否为空

根据您的场景,您可以使用三元运算符

name = requestCall.Name == null ? something : something_else

或空合并操作符

name = requestCall.Name ?? something

变量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;
}

创建一个requestCall.IsValid()方法(适当地命名为适合您的用法的方法),并使用它来验证您是否能够创建新客户。

我可以想象,当你确定需要添加的其他东西时,逻辑将会增长,这将减少你必须做的更新量。

作为旁注:您可能希望创建一个以requestCall作为参数的构造函数

Do it as

 requestCall.Name ?? "soome text", 

!string.IsNullOrEmpty(requestCall.Name) ? requestCall.Name : "soome text"

并检查

是否为null
 `age = requestCall.Age == null ? (default) :  requestCall.Age.ofType<DateTime>().DOB`

try this

Customer = new Customer (
     name = requestCall.Name ?? string.Empty, 
     age = requestCall.Age.ofType<DateTime>().DOB ?? DateTime.Now
    )