在Generic中实现接口时,为什么不必实现这些方法
public interface IMyTest<T>
{
T Add(T i, T j);
}
public class MyContainer<T> where T : IComparable<T>, IMyTest<T>
{
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 14
你没有实现这个界面.您说为type参数提供的type参数T必须自己实现接口.这是什么where T部分是指-这是指定的约束上T.
这意味着在您的MyContainer班级中您可以使用界面的成员:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
(目前还不清楚为什么你的Add方法需要两个T值,以及作为一个实例方法,但这是另一回事.)
没有约束T,你就没有Add方法可以调用.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |