Chr*_*egg 5 c# debugging mathnet-numerics math.net
我正在尝试在Math.NET Numerics中为矩阵和向量编写调试器类型代理/代理,因此调试器显示更多有用的信息(也在F#FSI中).类型层次结构如下:
Generic.Matrix<T>Double.Matrix : Generic.Matrix<double>Double.DenseMatrix : Double.Matrix具有封闭泛型类型的非泛型代理.如果代替Matrix<double>构造函数接受a Double.Matrix或a,它也可以以相同的方式工作Double.DenseMatrix.
public class MatrixSummary
{
public MatrixSummary(Matrix<double> matrix) { }
// ...
}
Run Code Online (Sandbox Code Playgroud)
然后,用以下内容装饰Double.DenseMatrix:
[DebuggerTypeProxy(typeof(MatrixSummary))]
Run Code Online (Sandbox Code Playgroud)
我不希望为每种类型实现单独的代理,所以让它通用:
public class MatrixSummary<T> where T : ...
{
public MatrixSummary(Matrix<T> matrix) { }
// ...
}
Run Code Online (Sandbox Code Playgroud)
然后,用以下内容装饰Double.DenseMatrix:
[DebuggerTypeProxy(typeof(MatrixSummary<>))]
Run Code Online (Sandbox Code Playgroud)
或者关闭:
[DebuggerTypeProxy(typeof(MatrixSummary<double>))]
Run Code Online (Sandbox Code Playgroud)
和/或如果需要,也可以将该属性添加到基类.
这些都不起作用,例如在调试单元测试时,即使文档说它在使用开放泛型类型(即MatrixSummary<>)声明属性时应该工作.毕竟它也适用于List<T>等等.
有任何想法吗?
有关:
创建MatrixSummary一个嵌套类:
[DebuggerTypeProxy(typeof(Matrix<>.MatrixSummary))]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |