簡體   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