У меня есть класс с перегруженными конструкторами.Я хотел бы переформулировать код так, чтобы при вызове одной формы конструктора параметры преобразовывались в формат, принятый другим конструктором, а затем вызывали его.
Вот код длятри конструктора, которые у меня сейчас есть:
/// <summary>
/// Original Constructor accepting a single dataset
/// </summary>
/// <param name="theData"> The dataset containing the tables to be displayed</param>
public DataForm(System.Data.DataSet theData)
{
InitializeComponent();
// Ensure a DataSets has been passed for display
if (theData != null)
{
// Create a new list and add the single dataset to it
List<DataSet> tempDataList = new List<DataSet>();
tempDataList.Add(theData);
// Assign the list of datasets to the member variable
this.m_DSList = tempDataList;
}
CreateTabPages();
}
/// <summary>
/// Construct the form with tab pages assigned for each dataset
/// </summary>
/// <param name="DataArray">A collection of datasets, each to be displayed on their own tab page</param>
public DataForm(DataSet[] DataArray)
{
InitializeComponent();
// Ensure some DataSets have been passed for display
if (DataArray != null && DataArray.Length > 0)
{
// Assign the list of datasets to teh member variable
this.m_DSList = new List<DataSet>(DataArray);
}
CreateTabPages();
}
/// <summary>
/// Construct the form with tab pages assigned for each dataset
/// </summary>
/// <param name="DataList">A collection of datasets, each displayed on their own tab page</param>
public DataForm( List<System.Data.DataSet> DataList )
{
InitializeComponent();
// Assign the list of datasets to teh member variable
this.m_DSList = DataList;
CreateTabPages();
}
Как вы можете видеть, в первых двух конструкторах повторяется код, отсюда и перефакторинг.
Я знаю, что мог бы иметь метод, которыйвыполняет инициализацию объекта и вызывает его у каждого из конструкторов, но это не выглядит очень элегантно.
Может кто-нибудь указать мне правильное направление?Благодаря.