gpt4 book ai didi

c# - 更好的解决方案,允许 C# 中的泛型类型使用 MinValue 和 MaxValue 字段

转载 作者:行者123 更新时间:2023-12-02 18:19:02 24 4
gpt4 key购买 nike

我有以下代码,我想传递泛型类型的 MinValue 和 MaxValue。它还有助于以某种方式通过接口(interface)指定泛型类型应具有 MinValue 和 MaxValue 属性,但我找不到正确的接口(interface)。

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 年初,此功能目前在 .NET 6 中预览,工作号为 being done on generic math 。有问题的接口(interface)是 IMinMaxValue<TSelf> :

public class TreeNode<T> where T : IMinMaxValue<T>
{
// ...

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

See it on SharpLab .

但是,static abstract成员(member),让您可以访问例如T.MinValue关于某些泛型类型 T ,目前不可用,除非您选择使用这些预览功能(有关如何执行此操作的说明,请参阅上面的博客文章)。

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

关于c# - 更好的解决方案,允许 C# 中的泛型类型使用 MinValue 和 MaxValue 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71111880/

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