c# - 我如何比较相同泛型类型的两个值?

标签 c#

以下代码无法编译:

class Test<T> where T : class, IComparable
{
    public bool IsGreater(T t1, T t2)
    {
        return t1 > t2; // Cannot apply operator '>' to operands of type 'T' and 'T'
    }
}

我怎样才能让它发挥作用?我希望它适用于 T = intdoubleDateTime 等。

最佳答案

IComparable您在此处用作类型约束的接口(interface)为您提供了 CompareTo方法。所以你可以这样做:

public bool IsGreater(T t1, T t2)
{
    return t1.CompareTo(t2) > 0;
}

关于c# - 我如何比较相同泛型类型的两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69899514/

相关文章:

c# - 在超过最大 int 数据类型值时如何评估溢出值

c# - 检查 SendAsync 是否已完成发送

c# - XAML 版权 header

c# - 将命令行参数传递到 WPF C# 应用程序并访问其值

C# Xpath 只返回第一个元素

c# - 如何将 IQueryable 转换为 EntityCollection

c# - 选择 MySQL 还是选择 SQL Server Express(免费)?

c# - 如何在 PictureBox 中平移图像

c# - 如何从 WPF MVVM 中的用户控件创建 PDF

c# - 我如何告诉 Resharper 我的 IEnumerable 方法删除了空值?