SA1125:UseShorthandForNullableTypes 有这个描述(取自 StyleCop 4.7 设置编辑器应用程序):
强制使用可空类型的简写,而不是 a 中的
Nullable<T>
excepttypeof()
。
它有typeof()
声明例外的原因吗?typeof(int?)
编译一样好 - 这只是 StyleCop 作者的偏好还是有更深层次的推理?
编辑:由于官方文档没有提到这个异常,我测试了以下代码:
var x = new Nullable<int>();
var y = new int?();
var z = typeof(Nullable<int>);
var v = typeof(int?);
结果:只有第一行引发 SA1125 警告。
编辑 2:StyleCop 的工作项要求修复此行为