C# 泛型接口实现通用大小比较: int 和 float 类型
可以使用泛型来实现一个通用接口,用于判断两个值的大小。下面是一个示例代码:
public interface IComparable<T>
{
int CompareTo(T other);
}
public class ComparableValue<T> : IComparable<T>
{
private T value;
public ComparableValue(T value)
{
this.value = value;
}
public int CompareTo(T other)
{
if (value is int intValue && other is int otherIntValue)
{
return intValue.CompareTo(otherIntValue);
}
else if (value is float floatValue && other is float otherFloatValue)
{
return floatValue.CompareTo(otherFloatValue);
}
else
{
throw new ArgumentException('Unsupported value type');
}
}
}
public static void Main(string[] args)
{
IComparable<int> intValue1 = new ComparableValue<int>(10);
IComparable<int> intValue2 = new ComparableValue<int>(20);
Console.WriteLine(intValue1.CompareTo(intValue2)); // 输出 -1
IComparable<float> floatValue1 = new ComparableValue<float>(3.14f);
IComparable<float> floatValue2 = new ComparableValue<float>(2.71f);
Console.WriteLine(floatValue1.CompareTo(floatValue2)); // 输出 1
}
在上面的代码中,我们定义了一个泛型接口 IComparable<T>,其中的 CompareTo 方法用于比较两个值的大小。然后,我们实现了一个 ComparableValue<T> 类来实现这个接口,该类封装了一个值,并在 CompareTo 方法中对不同的值类型进行比较。在 Main 方法中,我们使用 ComparableValue<T> 类创建了两个 IComparable<T> 类型的实例,并调用了它们的 CompareTo 方法来比较两个值的大小。
原文地址: https://www.cveoy.top/t/topic/o36t 著作权归作者所有。请勿转载和采集!