1
我有以下类:重构一个它可以处理多种类型的方法?
public class Disciplines
{
public int Id { get; set; }
public string Discipline { get; set; }
public bool IsChecked { get; set; }
}
我的项目有使用类的形式来创建一个复选框组几个视图模型:
public List<Disciplines> DisciplinesCBG { get; set; }
我节省的复选框以选择该数据库为逗号分隔字符串,然后分裂的逗号的字符串重新显示为复选框:
public static UserProfileViewModel DisciplinesStringToCheckboxGroup(UserProfileViewModel model)
{
string[] disciplineArray = model.Disciplines.Split(',');
for (int i = 0; i < model.DisciplinesCBG.Count; i++)
{
string currentValue = model.DisciplinesCBG[i].Discipline;
if(Array.IndexOf(disciplineArray, currentValue) > -1)
{
model.DisciplinesCBG[i].IsChecked = true;
}
}
return model;
}
我的问题是,浩w除了UserProfileViewModel
之外,我还可以编写可用于其他ViewModel类型的方法吗?例如,我有一个名为RegisterViewModel
的视图模型,它使用与public List<Disciplines> DisciplinesCBG { get; set; }
相同的public List<Disciplines> DisciplinesCBG { get; set; }
,我希望能够使用与上述相同的方法,而不必复制它并更改签名。我假设这是可能的?
您的最后一种方法也可以是扩展方法。不确定一个简单的基类在这种情况下不会比接口更好。 – BradleyDotNET
@BradleyDotNET它也可以是一个BaseClass,但如果以后你需要添加'HasFoo','HasBar','HasSomething',它会变得复杂。 –
当然,在这一点上宁愿组成继承似乎成为一个主要因素。不是说接口是错误的*,而是“IHaveSomething”的接口有点红旗 – BradleyDotNET