任何人都可以帮助我使用此代码。我已经在asp.net MVC c#中编写了此代码,但是我不知道为什么使用它?在if语句逻辑中。我想知道什么是预订?.UserID ??
public async Task<IActionResult> Details(int id)
{
//get the user who already logged in
IdentityUser user = await
_userManagerService.FindByNameAsync(User.Identity.Name);
//get single package
Booking booking = _bookingDataService.GetSingle(b => b.BookingID
== id);
if ((booking?.UserID ?? "A") == (user?.Id ?? "B"))
{
//create vm
BookingDetailsViewModel vm = new BookingDetailsViewModel
{
BookingDate=booking.BookingDate,
Price=booking.Price,
Qty=booking.Qty
};
//pass to view
return View(vm);
}
else
{
return RedirectToAction("Index", "Customer");
}
}
}
答案 0 :(得分:1)
MyVar?.SomeProperty
检查MyVar
是否为空。
写var foo = MyVar?.SomeProperty
就像写var foo = ((MyVar == null) ? (null) : (MyVar.SomeProperty))
MyVar.SomeProperty ?? "SomeValue"
检查SomeProperty
是否为空,然后为其分配值“ SomeValue”
写var foo = MyVar.SomeProperty ?? "SomeValue"
就像写var foo = ((MyVar.SomeProperty == null) ? ("SomeValue") : (MyVar.SomeProperty))