我有以下代码,我想传递泛型类型的MinValue和MaxValue。它还可以通过接口指定泛型类型应该具有MinValue和MaxValue属性,但我找不到正确的接口。
public class TreeNode<T> where T : IComparable
{
public T data { get; set; }
public TreeNode(T value) {...}
public bool IsValidBST()
{
return IsValidBST(this, T.MinValue, T.MaxValue);
}
public bool IsValidBST(TreeNode<T> node, T min, T max) {...}
}
但是我的编译器告诉我,"T
是一个在给定上下文中无效的类型参数“。
发布于 2022-02-14 12:30:58
从2022年初起,此功能目前已在.NET 6中的work 在一般数学上完成下预览。所讨论的接口是IMinMaxValue
public class TreeNode<T> where T : IMinMaxValue<T>
{
// ...
public bool IsValidBST()
{
return IsValidBST(this, T.MinValue, T.MaxValue);
}
}
但是,static abstract
成员允许您访问某些泛型T
上的T.MinValue
,除非您选择使用这些预览功能(有关如何使用这些预览功能的说明,请参阅上面的博客文章)。
如果您不想选择预览功能,就没有内置的功能来满足您的需要。
https://stackoverflow.com/questions/71111880
复制相似问题