Как передать зубчатый массив из одной формы в другую форму?
(Новое в C#) Я создаю зубчатую форму массива в C#, как показано ниже, а затем передаю ее в форму 2:
// Answers jagged array that is declared in form 1
private Question[][] _answers;
Следующий код - это то, что я использую для создания второй формы и передачи ей массива:
//Code to pass all elements of array to new array in form 2
Question[][] DisplayAnswers = new Question[1][];
//Code for new form2
ResultsForm resultsForm = new ResultsForm();
//Code for dialog results from form 2
DialogResult dialogResult = resultsForm.ShowDialog();
Я правильно передаю массив?
2 ответа
Я думаю, что вы хотите сделать это
//Code to pass all elements of array to new array in form 2
Question[][] DisplayAnswers = new Question[1][];
//Code for new form2
ResultsForm resultsForm = new ResultsForm(DisplayAnswers);
//Code for dialog results from form 2
DialogResult dialogResult = resultsForm.ShowDialog();
Имейте в виду, вам также нужно инициализировать вторую часть зубчатого массива - иначе при попытке доступа к нему будет сгенерировано исключение нулевой ссылки.
На самом деле у вас есть пара опций, вы можете передать массив в конструкторе, если вы добавили его в конструктор в resultsForm. Другой вариант - сделать массив public static
затем получите доступ к нему из resultsForm, указав имя основной формы.