繁体   English   中英

在Null对象的属性上使用Null条件运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM