c# - 用于泛型类型层次结构的 DebuggerTypeProxy

标签 c# debugging math.net mathnet-numerics

我正在尝试为 Math.NET Numerics 中的矩阵和向量编写调试器类型的代理/代理项,因此调试器会显示更多有用的信息(也在 F# FSI 中)。类型层次结构如下:

  • Generic.Matrix<T>
  • Double.Matrix : Generic.Matrix<double>
  • Double.DenseMatrix : Double.Matrix

什么有效

具有封闭通用类型的非通用代理。如果不是 Matrix<double>,它也以相同的方式工作构造函数将接受 Double.MatrixDouble.DenseMatrix .

public class MatrixSummary
{
    public MatrixSummary(Matrix<double> matrix) { }
    // ...
}

然后,装饰 Double.DenseMatrix:

[DebuggerTypeProxy(typeof(MatrixSummary))]

我想从事的工作

我不想为每种类型都实现一个单独的代理,所以让我们让它通用:

public class MatrixSummary<T> where T : ...
{
    public MatrixSummary(Matrix<T> matrix) { }
    // ...
}

然后,装饰 Double.DenseMatrix:

[DebuggerTypeProxy(typeof(MatrixSummary<>))]

或者可能关闭:

[DebuggerTypeProxy(typeof(MatrixSummary<double>))]

和/或如果需要,也可以将该属性添加到基类。

这些都不起作用,例如在调试单元测试时,即使文档说它应该在使用开放通用类型(即 MatrixSummary<> )声明属性时工作。毕竟它也适用于 List<T>等等

有什么想法吗?

相关:

最佳答案

使 MatrixSummary 成为嵌套类:

[DebuggerTypeProxy(typeof(Matrix<>.MatrixSummary))]

关于c# - 用于泛型类型层次结构的 DebuggerTypeProxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15707775/

相关文章:

debugging - 如何检查失败的 `docker build` 的文件系统?

c# - ILNumerics 在向量上的简单数学运算与系统数组和 Math.NET 的性能对比

c# - 如果存在超过 37 个字符,如何将字符串拆分为多行

c# - 使用 AutoMapper 获取异常

c# - 如何在 C# 中创建新对象列表?

c# - WCF Web服务:响应为200/ok,但响应正文为空

debugging - 黑莓:设备上的高效调试?

java - Eclipse 打印堆栈跟踪但不显示变量。漏洞?

c# - Math.Net 解值为 0 的线性方程组

c# - 齐次线性方程组的基本解 : Ax=0 with Det(A)=0 with MathNet