У меня есть собственный класс, который в основном представляет собой SortedList с несколькими дополнительными свойствами и методами.Я хотел бы выполнить дополнительную обработку при добавлении новой пары ключ / значение (т. Е. При вызове метода .Add
).Я могу скрыть метод .Add
или использовать другое имя метода (например: .AddPair
), а затем вызвать 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());
}
}
Есть ли предпочтительный подход?Будет ли один подход (скрытие?) Потенциально вызывать проблемы?