我有一堂课如下:
public class RecipientEmailDetails
{
public string Name { get; set; }
public string Email { get; set; }
public List<VacancyEmailDetails> Vacancies { get; set; }
}
需要更改此类以允许空缺接受通用数据,例如如下:
public class RecipientEmailDetails<T>
{
public string Name { get; set; }
public string Email { get; set; }
public List<T> Vacancies { get; set; }
}
不幸的是,目前如果我这样做,我需要更改所有实例化这个类的代码(很多很多位置)以包含这个新的泛型类型,例如改变这个:
List<RecipientEmailDetails> recipientEmailDetails = wrapper.GetRecipientEmails(emailCount);
对此:
List<RecipientEmailDetails<VacancyEmailDetails> recipientEmailDetails = wrapper.GetRecipientEmails(emailCount);
最终,这是很多变化,并且这些当前位置中的许多将不知道(理想情况下应该不知道)什么类型的数据存储在空缺中。他们将简单地转发此信息,直到最终检查和处理空缺列表。
无论如何,切入正题,我正在寻找将通用数据存储在 Vacancy 中的巧妙方法,而不必在任何地方更改 RecipientEmailDetails 对象的初始化方式。我宁愿不必装箱和拆箱。
我应该补充一点,VacancyEmailDetails 目前是这样的:
public class VacancyEmailDetails
{
public string Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public string Salary { get; set; }
public string Notes { get; set; }
}
在所有情况下,都需要空位来保存与此类似的对象,即主要是具有很少或很少方法的数据成员。然而,这些成员的数量、名称和类型会有很大差异。