var car = repository.Get(id);
if(car != null)
{
if(car.AdditionalInfo != null)
{
if(car.AdditionalInfo.CarOwner.Status == "USA")
{
...
}
else
{
.. do something for
}
}
else
{
// create additional info and save
}
}
else
{
}
考慮到以下情況和多個 if 條件,是否有一些更簡潔的方法來撰寫它?不要關注 Status 屬性,而是關注 if else 的流程。
uj5u.com熱心網友回復:
您可以使用空條件運算子 ?.
if (car?.AdditionalInfo?.CarOwner?.Status == "USA")
{
...
}
如果car、 或AdditionalInfo、 或CarOwner為空,則左邊的所有內容都將決議為null,否則您將獲得狀態,然后您可以進行比較。
uj5u.com熱心網友回復:
您可以使用?運算子:
var car = repository.Get(id);
if(car?.AdditionalInfo?.CarOwner?.Status == "USA" != null)
{
}
else
{
}
uj5u.com熱心網友回復:
我認為最好通過反轉ifs 并引入函式來減少嵌套。當有幾個條件時,空合并運算子會混淆可讀性。我會采用類似的方法,因為在這里您一次只考慮一種條件:
public void HandleCar()
{
var car = repository.Get(id);
if (car is null)
return;
if (car.AdditionalInfo is null)
{
// create additional info and save
return;
}
if (car.AdditionalInfo.CarOwner.Status == "USA")
{
// ...
return;
}
// .. do something for
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397984.html
