最近项目中有一个bug被测试(是黑盒测试)发现了,跟了老半天代码,才找到这个问题的所在,原来是一个计算表达式中用到了??运算符,才导致了这个错误,下面让我简单讲述一下. C# ?? 运算符 msdn上的定义如下: C#中的?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值. 如果此运算符的左操作数不为 null,则此运算符将返回左操作数:否则返回右操作数. 这句话的意思很好理解,比如: int? x = null; int y = x ?? -1; 那么…