我有一个类如下:泛型集合对象
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);
归根结底,这是一个很大的变化,许多这些当前位置将没有知识(理想情况下不应该有知识)的是什么类型的数据存储在空缺。他们只是简单地转发这些信息,直到最终确认并处理空缺职位清单。
无论如何切入追逐我正在寻找聪明的方法来将通用数据存储在空位中,而无需在任何地方改变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; }
}
在所有情况下的空缺将rquired举行类似的与很少或几种方法这一个,即主要数据成员的对象。但是,这些成员的数量,名称和类型会有很大差异。
一个很好的例子,为什么你应该尽可能多地使用'var'。如果已经用隐式键入 –
@RuneFS声明变量,那么将不会更改metnioned代码:否,不应尽可能地使用'var'。通常你想让代码知道类型,并且如果一个接口改变了,代码不应该只是编译而且会产生意想不到的结果。 – Guffa
在强类型语言imho中使用var并不是什么好的编程习惯,即使它把这个问题排除出来也很容易导致另外10个更严重的问题。 – kh25