【发布时间】:2015-02-05 18:18:50
【问题描述】:
如果我正在创建一个类MyWrapper 来包装来自myClass 的对象List,那么MyWrapper 是否应该从List<T> 继承?还是List<myClass>?
或者我应该为List<myClass> 创建一些扩展方法?
我知道从 List<T> 继承是违反准则的,但为什么呢?
从List<Point> 或List<T> 继承有什么缺点吗?
为List<T> 创建扩展方法有什么缺点吗?那么为List<myType> 创建扩展方法呢?
一个对 List 有效的扩展方法的例子是
public static void Swap<T>(this List<T> list, int firstIndex, int secondIndex)
{...}
【问题讨论】:
-
我可能会使用 List 的包装器。您的新课程不是列表。
-
List T 的扩展方法肯定有一个缺点。没有方法 MoveTo(Point ... 我投票继承的类
-
如果您想更改数据结构,我更喜欢组合而不是继承。
标签: c# inheritance extension-methods