微软的可空引用类型文档解释说,可空上下文是两个独立二进制区别的交叉乘积:可空注释上下文可以启用或禁用,可空警告上下文也可以启用或禁用。但我很难理解为什么有的人可能启用一个可空上下文而禁用另一个。
我最好的解释是这追踪了生产者-消费者的区别。也就是说,X中启用的注释上下文允许使用X的Y,在Y的启用的警告上下文中具有有意义的警告。或者换句话说,如果我想改善我代码的用户(不管是我自己在自己代码的另一部分还是使用我创建的库的其他人)的警告,我应该启用注释上下文;如果我想确保我对其他人创建的代码进行适当检查,无论该代码是否经过适当注释,我应该启用警告上下文。当然,理想情况下,我可能需要同时做到这两点,但我可能会优先考虑其中一个。
这样想是正确的吗?