SHIGORBIRDMAN: ah. prave som sa pozrel na null propagation a nie je to celkom to iste!
ide o to ze pouzitim "?" operatora sa da dosiahnut to ze sa checkovanie zastavi hned pri prvom neexistujucom clene toho retazca. Cize hned to vyhodnoti ako null, bez toho aby vyhodilo chyby na dalsich castiach hierarchie objektov ktore tiez nebudu pritomne na neexistujucom objeckte.
cize :
var teacherName = classroom?.GetTeacher()?.Name;
// teacherName is null if GetTeacher() returns null OR classroom is null
co som si pri tomto teraz vsimol (a vyzera uzitocne) je ?? operator. Sprava sa velmi podobne ako trinarny, ale netreba tam davat explicitne tu podmienku (myVar == null) ? "hodnota ked je null" : "hodnota ked nie je";
var teacherName = classroom?.GetTeacher()?.Name ?? "No Name";
// teacherName will be "No Name" when GetTeacher()
// returns null OR classroom is null OR Name is null