[英]Use Null Conditional Operator on property of Null Object
我想使用Null-Conditional运算符检查下面的SubscriptionExpires
属性。
public partial class Subscription
{
[Key]
public int SubscriptionId { get; set; }
public string SubscriberId { get; set; }
public DateTime? SubscriptionExpires { get; set; }
public virtual ICollection<ApplicationUser> Users { get; set; }
}
订阅返回者
var subscription = _customersContext.Subscriptions.Where(s => s.SubscriptionId == user.SubscriptionId).FirstOrDefault();
但是,如果Subscription
为null,则Subscription?.SubscriptionExpires
返回null reference exception
,因此,我们仍然保留旧的
if (subscription != null)
当父对象可以为null时,如何使用Null-Conditional运算符读取属性?
当父对象可以为null时,如何使用Null-Conditional运算符读取属性?
您可以像使用Subscription?.SubscriptionExpires
。 这不会抛出NullReferenceException
,但是会返回DateTime?
。 如果您尝试使用DateTime?
的值,那么您将获得异常。 所以这不会抛出:
var expiration = Subscription?.SubscriptionExpires;
但这可能:
DateTime? expiration = Subscription?.SubscriptionExpires;
DateTime expiration.Value;
如果您希望将“ var expiration”用作DateTime数据类型时永远不要抛出异常,则可以使用
var expiration = subscription?.SubscriptionExpires ?? DateTime.MinValue;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.