将Null条件运算符与对象初始值设定项一起使用时出现NullReferenceException

时间:2017-12-10 10:51:06

标签: c# .net

为什么我System.NullReferenceException运行如下代码:

var Response = new Response()
{
    Id = request?.Event.Id
};

我不应该只获取Id属性的Null值(Id是一个字符串)?

1 个答案:

答案 0 :(得分:2)

如果request null Event Eventnullrequest,则会考虑当前代码。如果是这种情况,则不会返回Id。如果Event实例中nullEvent,那么当您尝试访问Id属性时,这仍然会导致NRE。

修复方法是还将空条件运算符添加到request?.Event?.Id ,如果syncClockTime :: TimeZone -> UTCTime -> Pico -> Pico syncClockTime zone time secondTo = do let (TimeOfDay hour minute secondFrom) = localTimeOfDay $ utcToLocalTime zone time if secondTo > secondFrom then secondTo - secondFrom else 60 + secondTo - secondFrom 为空且不尝试访问secondFrom,则会返回UTCTime

String date = finalObject.getString("DateCreated");

String temp = date.substring(date.indexOf("(") + 1);
String datereip = date.substring(0, date.indexOf(")"));

Long timeInMillis = Long.parseLong(datereip);
Date date1=new Date(timeInMillis);