C#函数中的多种数据类型输入

JR_*_*JR_ 0 .net c# arduino .net-micro-framework netduino

我正在从Arduino(c语言)切换到Netduino(c#语言).

在我的arduino程序中,我有以下功能(内置):

压抑

我想将其转换为C#.我有以下代码:

int ConstrainValue(int value, int min, int max)
    {
        int Value = value;
        int Min = min;
        int Max = max;

        if (Value >= Max)
        {
            Value = Max;
            return Value;
        }
        else if (Value <= Max)
        {
            Value = Min;
            return Value;
        }
        return Value;
    }
Run Code Online (Sandbox Code Playgroud)

但是,我也希望能够将其用于double数据类型.是否可以修改函数以便可以使用多种数据类型?

Céd*_*non 5

它是,使用IComparable.

static T ConstrainValue<T>(T value, T min, T max) where T : IComparable
{
    if (value.CompareTo(max) > 0)
        return max;
    else if (value.CompareTo(min) < 0)
        return min;
    return value;
}
Run Code Online (Sandbox Code Playgroud)