(Update for C# 6.0)
If you are using C# 6 or newer (Visual Studio 2015 or newer), then you can achieve this using the null-conditional operator ?.
:
var customerId = cu.Customer?.CustomerId.ToString() ?? "";
One useful property of the null-conditional operator is that it can also be "chained" if you want to test if several nested properties are 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() ?? "";
For C# versions prior to 6.0 (VS2013 or older), you could coalesce it like this:
string customerId = cu.Customer != null ? cu.Customer.CustomerID.ToString() : "";
Simply check if the object is non-null before you try to access its members, and return an empty string otherwise.
Apart from that, there are situations where null object pattern is useful. That would mean that you ensure that your Customer
's parent class (type of cu
in this case) always return an actual instance of an object, even if it is "Empty". Check this link for an example, if you think it may apply to your problem: How do I create a Null Object in C#.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…