使用 Resharper 的代码注释属性,我正在尝试为一个方法编写一个 ContractAnnotation 属性,如果输入为 null,该方法将始终返回 null,但如果输入不为 null,则返回null 或值。就像是:
[ContractAnnotation("null => null; notnull => null||notnull")]
我会自己写这个:
[ContractAnnotation("null => null")]
除了根据ReSharper 7 中的 Contract Annotations之外,这将自动补充一些无效的内容:
null => null
如果只有一个参数,则省略参数名称。基本上,null => null
意味着如果参数有值null
,方法返回值也是null
。另请注意,此注释会自动补充notnull => notnull
.
我如何编写ContractAnnotation
属性以指示当输入为 时无法确定返回值是什么notnull
?
或者,我怎样才能阻止它自动补充我的null => null
注释notnull => notnull
奖金问题:
我怎么能写出类似下面的东西:
[ContractAnnotation("null => true; notnull => true||false")]
或者在那种情况下,这是否足够,因为它不会自动补充逆?
[ContractAnnotation("null => true")]