【发布时间】:2011-03-19 04:21:49
【问题描述】:
我正在向现有的 .Net 集合添加功能。为了做到这一点,我重写了几个函数。我无法覆盖集合中基本数组返回的返回值。例如,如果我调用 emailMessage.To[i],它不会返回正确的值,但如果我调用 emailMessage.Item(i),它会返回正确的值。下面是我课堂上的代码。我需要重写什么来纠正第一个错误?
namespace EmailService
{
public class MailAddressCollection : System.Net.Mail.MailAddressCollection
{
public MailAddressCollection() : base()
{
}
public void Add(MailAddress Address)
{
base.Add(Address);
}
public MailAddress Item(int index)
{
return (MailAddress)(base.Items[index]);
}
}
}
【问题讨论】:
-
我认为在这种情况下最好使用组合而不是继承来遵守Liskov substitution principle
标签: c# overriding