[英]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.