首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的解决方案,以允许MinValue和MaxValue字段来自C#中的泛型类型

更好的解决方案,以允许MinValue和MaxValue字段来自C#中的泛型类型
EN

Stack Overflow用户
提问于 2022-02-14 12:24:32
回答 1查看 67关注 0票数 2

我有以下代码,我想传递泛型类型的MinValue和MaxValue。它还可以通过接口指定泛型类型应该具有MinValue和MaxValue属性,但我找不到正确的接口。

代码语言:javascript
运行
复制
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是一个在给定上下文中无效的类型参数“。

EN

Stack Overflow用户

回答已采纳

发布于 2022-02-14 12:30:58

从2022年初起,此功能目前已在.NET 6中的work 在一般数学上完成下预览。所讨论的接口是IMinMaxValue

代码语言:javascript
运行
复制
public class TreeNode<T> where T : IMinMaxValue<T>
{
    // ...

    public bool IsValidBST()
    {
        return IsValidBST(this, T.MinValue, T.MaxValue);
    }
}

在SharpLab上看

但是,static abstract成员允许您访问某些泛型T上的T.MinValue,除非您选择使用这些预览功能(有关如何使用这些预览功能的说明,请参阅上面的博客文章)。

如果您不想选择预览功能,就没有内置的功能来满足您的需要。

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71111880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档