如何正确指定可为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>