如何在参数含in关键字时正确使用<inheritdoc cref="..."/>?
解决引用含in参数方法的歧义问题
可以用in关键字,得用特性标记来替代。
正确的写法是给目标方法的in参数加上[In]特性标记,修改后的cref引用如下:
/// <summary> /// ... /// <inheritdoc cref="Get(ref X, ref Y, int, [In]Z)"/> /// </summary> public int Get(ref X a, int b, in Z d = default) { ... }
原理是XML注释的cref解析逻辑里,ref和out可以直接在cref里写,但in参数必须用[In]特性(对应System.Runtime.CompilerServices.InAttribute)来标记,IDE才能正确定位到带in参数的目标方法,不会出现歧义或语法错误。
如果IDE提示找不到[In],只需在代码文件顶部加上命名空间引用:
using System.Runtime.CompilerServices;
内容的提问来源于stack exchange,提问作者Bilal Akil
相关产品推荐
相关产品推荐

