2015-01-23 2 views
0

Вот мой код:Мой код продолжает получать эту ошибку: оператор возврата в функцию получения или оператор должен возвращать значение

Public Function score() 
    Dim file As System.IO.FileStream 
    Dim Form As String 

    If Form = 1 Then 
     Try 

      If My.Computer.FileSystem.FileExists("C:\Users\sfawcett\Documents\savedquizdata\class1.txt") Then 
       Return 

      End If 


      file = System.IO.File.Create("C:\Users\sfawcett\Documents\savedquizdata\class1.txt") 
      file.Close() 
      Dim addInfo As New System.IO.StreamWriter("C:\Users\sfawcett\Documents\savedquizdata\class1.txt") 

      addInfo.WriteLine("The person-->" & Name & "<-- got a score of " & score() & " out of 10 from class " & Form) 
      addInfo.Close() 
     Catch 
     End Try 
    End If 
+7

Ну ... вы должны прислушаться к советам об ошибке и * вернуть что-то. –

+0

показать свою подпись функции. что он должен возвращать? – Chris

+0

Что они сказали. У вас есть «возвращение», а затем ничего. Он должен возвратиться как «return» thisisastring »« – Kat

ответ

2

Если вы хотите иметь метод, который не возвращает ничего, что вам нужно используйте Sub вместо Function, например Public Sub score() ...

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

Score=123

Или вы можете использовать Return ключевое слово со значением:

Return 123.

Кроме того, как указывает Тим, функция, которая не имеет типа возврата (например, Scope() As Integer), принимает тип Object, и, следовательно, все значения, полученные из вашей функции, должны быть соответственно сгруппированы.

+0

Важно отметить, что в VB.NET метод возвращает 'Object', если он не имеет' As ReturnType' в конце подписи. Таким образом, возвращаемый тип является необязательным. [MSDN] (https://msdn.microsoft.com/en-us/library/sect4ck6.aspx): _ «Процедура функции может объявить тип данных значения, возвращаемого процедурой. Вы можете указать любой тип данных или имя перечисления, структуру, класс или интерфейс. Если вы не укажете параметр returntype, процедура вернет объект. "_ –

+0

@TimSchmelter - Конечно, спасибо Тиму, я обновил свой ответ включить это. –

Смежные вопросы