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