可为null的2D数组的XML注释



如何正确指定可为null的双精度2D数组的XML注释?下面给出了语法错误。

/// <returns>The <see cref="double[,]"/>.</returns>
public double?[,] Get2DArray()
{
    ...
}

如果它只是一个2D阵列的替身,我会使用:

/// <returns>The <see cref="double{T,T}]"/>.</returns>
public double[,] Get2DArray()
{
    ...
}

如果只是一个单一的值,我会使用:

/// <returns>The <see cref="Nullable{Double}"/>.</returns>
public static double? GetNullableDouble()
{

我似乎无法将这两个概念结合起来得到正确的评论。

看完这里,也许你想要

/// <summary>
/// Gets the 2D Array
/// </summary>
/// <returns>The <see cref="T:double?[,]"/>.</returns>
public double?[,] Get2DArray()
{
    ...
}

正如所评论的,与其说应该考虑锯齿状的多维数组(double?[,]),不如说内部.Net实现更出色。此外,如果你认为接口是承诺,你应该做出尽可能小的承诺,它们更容易实现。

也许,

/// <summary>
/// Gets the 2D Array
/// </summary>
/// <returns>
/// The <see cref="T:IEnumerable{IEnumerable{double?}}"/> data.
/// </returns>    
public IEnumerable<IEnumerable<double?>> GetData()
{
    ...
}

就足够了。

问题是没有泛型数组类型,因此没有可引用的内容。我相信这是使用编译器魔术完成的,但这超出了我的知识范围。

我查看了一堆核心.NET源代码,看看是否有任何关于数组的cref值使用了任何通用引用,但我没有发现任何内容。所有使用<see cref="T:System.Array"/>的内容。

我建议您最好的选择是使用以下格式:

<returns>The 2-dimentional <see cref="System.Array"/> of <see cref="System.Nullable{System.Double}" />.</returns>

相关内容

  • 没有找到相关文章

最新更新