「?.」——代表非空访问,例如「myObject?.someProperty」,等价于——「(myObject != null) ? myObject.someProperty : null」
「??」——代表避空判断,例如「a ?? 3」a为空时,返回3
「??=」——同样是避空赋值,例如「a ??= 3」a为空时,a赋值为3
「?.」——代表非空访问,例如「myObject?.someProperty」,等价于——「(myObject != null) ? myObject.someProperty : null」
「??」——代表避空判断,例如「a ?? 3」a为空时,返回3
「??=」——同样是避空赋值,例如「a ??= 3」a为空时,a赋值为3