gpt4 book ai didi

c# - 具有接口(interface)约束的泛型方法与具有接口(interface)参数的方法之间的区别

转载 作者:行者123 更新时间:2023-11-30 20:36:22 25 4
gpt4 key购买 nike

谁能解释一下两者之间的区别

    public void SwapIfGreater<T>(ref T lhs, ref T rhs) where T : System.IComparable
{
T temp;
if (lhs.CompareTo(rhs) > 0)
{
temp = lhs;
lhs = rhs;
rhs = temp;
}
}

    public void SwapIfGreater(ref System.IComparable lhs, ref System.IComparable rhs)
{
System.IComparable temp;
if (lhs.CompareTo(rhs) > 0)
{
temp = lhs;
lhs = rhs;
rhs = temp;
}
}

在我看来,一旦您将泛型方法限制为仅接受实现接口(interface)的参数,您还不如使用接口(interface)类型的参数。

最佳答案

泛型形式将允许编译器进行类型检查以确保参数的类型相同。

之前: IComparable<T> 不源自 IComparable .因此,一个对象实现了 IComparable<T>不必实现 IComparable .它们彼此不兼容。

关于c# - 具有接口(interface)约束的泛型方法与具有接口(interface)参数的方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37025360/

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