繁体   English   中英

如何使用泛型类型的运算符

[英]How to use operators with generic types

我想制作一些像这样的通用方法

public static T maxValue(T value1, T value2 )       
{
    if(value1>value2)
        return value1;
    else
       return value2;    
}

并使用它

max<string>.maxValue("john","john");

我的问题是maxValue函数的返回类型应该是什么,以及如何使用泛型类型的+=<>等运算符?

我知道T没有定义的数据类型。 我需要改进这段代码。

你可以这样做。 这个,您可以用于比较==><等,但不能用于+-等操作。

这里,我们使用的是> (返回类型为T,与输入类型相同)

public static T maxValue<T>(T value1, T value2) where T : IComparable<T>
{
    if (value1.CompareTo(value2) > 0)
        return value1;
    else
        return value2;
}

用法

var maxInt = maxValue(3, 7); //=> 7
var maxDouble = maxValue(34.89d, -9.6d); //=> 34.89

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM