gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:00:23 25 4
gpt4 key购买 nike

我正在尝试为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com