У меня есть программа, которая должна перемещаться по серии экранов в заданном порядке. То, что я хотел бы сделать, - это управлять этим централизованно, используя что-то аналогичное фабрике классов, где я отправляю запрос для следующей формы, и он создает экземпляр и возвращает следующую форму. У меня есть следующий, однако, это будет экземпляр всех форм сразу:Хранить список форм в массиве
private List<Form> screens = new List<Form>() { new Form1(), new Form2(), … };
private Form currentForm;
private int currentPos;
public Form Next()
{
currentForm = screens[++currentPos];
return currentForm;
}
Есть ли способ, чтобы отложить создание экземпляра до фактического запрос не будет сделан? Например:
private List<Form> screens = new List<Form>() { Form1,Form2, …};
private Form currentFrm;
private int currentPos;
public Form Next()
{
currentForm = new screens[++currentPos];
return currentFrm;
}
(это не скомпилируется)
AFAIK, если вы будете уверены, что в результате типа, вы должны использовать 'cast', а не оператор' как' – abatishchev
@abatishchev, ну, что зависит, если вы хотите, чтобы вернуться 'null' или выдавать исключение, если один из типов не получается из' Form'. В нашем случае ваш подход, вероятно, лучше всего, но я обновлю свой ответ. –