当我使用C#编程时,有时我需要一个强类型集合:
我经常创建一个继承自以下的类ArrayList:
using System.Collections;
public class Emails: ArrayList
{
public new Email this[int i]
{
get
{
return (Email)base[i];
}
set
{
base[i] = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到这可能不是从集合继承的正确方法.如果我想继承C#中的强类型集合,我应该怎么做,我应该选择继承哪个类?
JSB*_*ոգչ 15
你想要的是通用的,比如List<T>.
public class Emails : List<Email>
{
}
Run Code Online (Sandbox Code Playgroud)
这有ArrayList的所有方法,然后是一些,你可以获得类型安全而无需做任何额外的工作.
但请注意,继承List<T>可能会导致您遇到更多麻烦.更好的想法是实现ICollection<T>或IEnumerable<T>使用List<T>内部实现接口.
忘记ArrayList和List.要做的"正确"的事情是从Collection派生出来并将你的类称为以Collection结尾的东西.
public sealed class EmailCollection : Collection<Email>
{
}
Run Code Online (Sandbox Code Playgroud)