gpt4 book ai didi

c# - 如何对泛型类型使用运算符

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:25 28 4
gpt4 key购买 nike

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

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

关于c# - 如何对泛型类型使用运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971742/

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