Is there a cleaner way to write null propagation in the earlier version of C#? -


i have class.

class property {     public int? propertyid { get; set; } }     

i have following statement wrote in c# 6.0

property p = null; var id = p?.propertyid.getvalueordefault() ?? 0;  

turns out null propagation doesn't work in c# 5.0. rewrote as:

int id = 0; if (propertybyaddress != null && propertybyaddress.propertyid != null) {     id = p.propertyid.value; } 

it seems unnecessarily wordy. there cleaner way in c# 5.0?

you can still use getvalueordefault in c# 5.0, yes null check necessary.

int id = 0; property p = null;  if (p != null)     id = p.propertyid.getvalueordefault(); 

you make extension method pointed out camilo, if feel that's "cleaner".

propertyextensions.cs

public static int getpropertyidvalueordefault(this property p) {     if (p != null)         return p.propertyid.getvalueordefault();      return 0; } 

usage:

property p = null; var id = p.getpropertyidvalueordefault(); 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -