2015-02-04 3 views
-1

Я пишу функцию, которая позволит мне вводить некоторые значения, и тогда это вернет это как список. Это мой код в настоящее время.Невозможно добавить элемент в список

Structure question 
    Dim asking As String 
    Dim answers As List(Of String) 
End Structure 

Private Function addQuestionToList(toAsk As String, answers() As String) As question 
    addQuestionToList.asking = toAsk 
    Dim listTemp As List(Of String) 
    For i As Integer = 0 To answers.Count - 1 
     listTemp.Add(answers(i)) 
    Next 
    addQuestionToList.answers = listTemp 
End Function 



#Region "Quiz Questions" 
    Dim GTAQuestions As List(Of question) 
    Sub initializeGTAQuestions() 
     GTAQuestions.Add(addQuestionToList("Some Question", {"answer1", "answer2"})) 
    End Sub 
#End Region 
+0

Ошибка, которая дает мне это «Ссылка на объект не указывает на экземпляр объекта» –

+0

вам необходимо внедрить GTAQuestions -> DIM GTAQuestions в качестве нового списка (вопрос) –

+1

Почти все исключения NullReference имеют одинаковый набор причин. Для получения справки см. [Исключение NullReference в Visual Basic] (http://stackoverflow.com/a/26761773/1070452). И не зря, но вы, вероятно, должны научиться принимать ответы, которые люди работают для вас. – Plutonix

ответ

0

Изменить код:

Dim GTAQuestions В виде списка (Вопроса) Sub initializeGTAQuestions() GTAQuestions.Add (addQuestionToList ("Некоторые Вопроса", { "answer1", "ANSWER2" })) End Sub

с этим:

Dim GTAQuestions As New List(Of question) 
Sub initializeGTAQuestions() 
    GTAQuestions.Add(addQuestionToList("Some Question", {"answer1", "answer2"})) 
End Sub 
0

Вам необходимо инициализировать каждый экземпляр структуры. Одним из вариантов является включение метода пользовательского new в вашей структуре, так что ваша структура и функция будет выглядеть следующим образом:

Structure question 
    Dim asking as String 
    Dim answers as List(Of String) 

    Public Sub New (ByVal _asking as String, ByVal _answers as List(Of String)) 
    asking = _asking 
    answers = _answers 
    End Sub 
End Structure 

Private Function addQuestionToList(ByVal asking as String, ByVal answers() as String) as question 
    Dim lstAnswers as New List(Of String) 
    For Each answer As String in answers 
    lstAnswers.Add(answer) 
    Next 
    Return New question(asking, lstAnswers) 
End Function 
Смежные вопросы