gpt4 book ai didi

c# - 在 Generic 中实现接口(interface)时,为什么它不是必须实现方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:55 25 4
gpt4 key购买 nike

在泛型中实现接口(interface)时,为什么不必须实现方法

public interface IMyTest<T>
{
T Add(T i, T j);
}

public class MyContainer<T> where T : IComparable<T>, IMyTest<T>
{

}

最佳答案

您没有实现接口(interface)。您是说为类型参数 T 提供的类型参数必须自身实现接口(interface)。这就是 where T 部分的含义 - 它在 T 上指定约束

这意味着在您的 MyContainer 类中您可以使用接口(interface)的成员:

public class MyContainer<T> where T : IComparable<T>, IMyTest<T> 
{
public T SumBiggestAndSmallest(IEnumerable<T> items)
{
var ordered = items.OrderBy(x => x)
.ToList();
return ordered.First().Add(ordered.First(), ordered.Last());
}
}

(不清楚为什么您的Add 方法采用 两个T 值,并且是一个实例方法,但这是另一回事。 )

如果没有 T 的约束,您将无法调用 Add 方法。

关于c# - 在 Generic 中实现接口(interface)时,为什么它不是必须实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37459323/

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