我是C#的相对新手,虽然我是一名称职的程序员,但我承认我对编写自定义集合类是否是一个好主意感到困惑.很多人似乎都说"不要",但在C#中有一整套基类.
这是我的具体案例.我有一个时间表申请.作为其中的一部分,我有一个服务类,服务类包含服务y的集合,例如路由链接.路由链接本身就是一个自定义类:
public class Service
{
public RouteLinks RL; // A collection of RouteLink types
...
}
public class RouteLink
{
public string FirstStopRef;
public string LastStopRef;
public Tracks RouteTrack; // Another collection, this time of Track types
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经看过使用Dictionary作为RouteLinks的类型,因为我需要能够引用它们.原则上这很好.但是,将RouteLink添加到RouteLinks集合的过程包括检查它是否已经存在,或者它是否已扩展和现有的路由链接,或者......为此,我需要一个自定义的添加功能.
那么为什么创建自定义集合类会有这么糟糕的做法呢?为什么我不应该继承CollectionBase或DictionaryBase?
我或许应该补充一点,我从VBA传输此代码[请不要拍我:)]我必须实现自定义集合.