赋值前检查value是否为空
本文关键字:是否 value 检查 赋值 | 更新日期: 2023-09-27 17:52:46
所以我正在创建一个新对象并从其他函数设置其属性。在应用这些值之前,我需要检查它们是否为空。我该怎么做呢?
Customer = new Customer (
name = requestCall.Name,
age = requestCall.Age.ofType<DateTime>().DOB
)
我如何检查如果requestCall。年龄或requestCall。申请前名称不为空?
根据您的场景,您可以使用三元运算符
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
)