(обновление для C # 6.0)
Если вы используете C # 6 или новее (Visual Studio 2015 или новее), то вы можете достичь этого, используя нулевой условный оператор ?.
:
var customerId = cu.Customer?.CustomerId.ToString() ?? "";
Одним полезным свойством условного оператора null является то, что его также можно «связать» цепью, если вы хотите проверить, являются ли несколько вложенных свойств нулевыми:
// ensure (a != null) && (b != null) && (c != null) before invoking
// a.b.c.CustomerId, otherwise return "" (short circuited at first encountered null)
var customerId = a?.b?.c?.CustomerId.ToString() ?? "";
Для C # версий до 6.0 (VS2013 или старше) вы можете объединить это так:
string customerId = cu.Customer != null ? cu.Customer.CustomerID.ToString() : "";
Просто проверьте, не является ли объект ненулевым, прежде чем пытаться получить доступ к его элементам, и в противном случае верните пустую строку.
Кроме того, существуют ситуации, когда шаблон нулевого объекта полезен. Это будет означать, что вы гарантируете, что родительский класс вашего Customer
(тип cu
в данном случае) всегда возвращает фактический экземпляр объекта, даже если он "Пустой". Посмотрите эту ссылку для примера, если вы считаете, что она может относиться к вашей проблеме: Как создать нулевой объект в C # .