我有一个自定义的类,基本上是一个SortedList与一些额外的属性和方法。当添加新的键/值对时(即调用.Add
方法时),我希望做一些额外的处理。我可以隐藏.Add
方法或使用其他方法名称(例如:.AddPair
),然后在该方法中调用base.Add
。首选方法?为什么?隐藏SortedList的.Add方法vs使用另一个方法名称与base.Add
隐藏。新增方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Inheritence_Test
{
class Program
{
static void Main(string[] args)
{
DYseries d = new DYseries() { FieldName = "test" };
d.Add(new DateTime(2010, 12, 1), 2345);
d.Add(new DateTime(2010, 12, 5), 2340);
d.Add(new DateTime(2010, 12, 2), 2343);
Console.WriteLine("fieldName {0} \n count {1} \n max {2} \n min {3}", d.FieldName, d.Count(), d.Keys.Max(), d.Keys.Min());
}
}
class DYseries : SortedList<DateTime, double>
{
public string FieldName { get; set; }
new public void Add(DateTime date, double value)
{
base.Add(date,value);
// additional processing here
Console.WriteLine("Added date {0}.\n Max date: {1}",date, this.Keys.Max());
}
}
}
或
使用另一种方法名称:
class Program
{
static void Main(string[] args)
{
DYseries d = new DYseries() { FieldName = "test" };
d.AddPair(new DateTime(2010, 12, 1), 2345);
d.AddPair(new DateTime(2010, 12, 5), 2340);
d.AddPair(new DateTime(2010, 12, 2), 2343);
d.AddPair(new DateTime(2010, 12, 9), 2348);
Console.WriteLine("fieldName {0} \n count {1} \n max {2} \n min {3}", d.FieldName, d.Count(), d.Keys.Max(), d.Keys.Min());
}
}
class DYseries : SortedList<DateTime, double>
{
public string FieldName { get; set; }
public void AddPair(DateTime date, double value)
{
base.Add(date,value);
// additional processing here
Console.WriteLine("Added date {0}.\n Max date: {1}",date, this.Keys.Max());
}
}
是否有一个优选的方法?一种方法(隐藏?)可能会导致问题吗?