我刚刚找到了这个语法:
date1 = date2?.ToString("yyyy-MM-dd") ?? date3;
当然,第一次看到这样的语法时,我并不理解它。经过调试,我明白它等同于:
if(date2 != null)
date1 = date2.ToString("yyyy-MM-dd");
else
date1 = date3;
我的问题是:为什么会引入这种语法,因为它根本不可读,只是节省了三行文本?
编辑:我的问题是关于 ? 操作符,而不是 ??。
?.
运算符还是??
运算符? - Lee?.
防止在date2
为 null 且试图调用.ToString()
时发生异常。??
的意思是,如果左侧返回 null,则返回右侧。 - Danny Goodall