2014-01-22 3 views
1

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

Sub characterListLength(ByVal Optional) 
    Dim rowCount As Integer 
    Dim endOfArray As Boolean 
    While endOfArray = False 
     If dataArray(0, rowCount) And dataArray(1, rowCount) = "" Then 
      arrayLength = rowCount 
      endOfArray = True 
     Else 
      rowCount += 1 
     End If 
    End While 



End Sub 

Однако на первой линии:

Sub characterListLength(ByVal Optional) 

Существует ошибка, где, как ожидается, идентификатор, где код говорит (ByVal Необязательный) , Я не уверен, как исправить эту ошибку и иметь необязательный параметр. Если бы кто-нибудь мог объяснить, что еще мне нужно сделать, чтобы исправить это, это было бы очень полезно.

+0

'Sub characterListLength (Дополнительно Имя As String = "Foo") 'NAME не является обязательным, но процедура будет использовать" foo "как значение по умолчанию – Plutonix

ответ

2

Вам нужно фактической переменной, что-то вроде:

Sub characterListLength(Optional ByVal optionalNumber As Integer = 0) 
0

Вы должны дать параметр имя и изменить порядок ключевых слов

Sub characterListLength(Optional ByVal p = Nothing) 
2

Если вы сказали:

, потому что я не могу найти необходимость в параметре в функции

Затем с помощью метода без параметров:

Sub characterListLength() 
    'Here your code 
End Sub 
0

Лучше «точка-nettier» альтернатива необязательных параметров заключается в использовании перегруженных методов. Рассмотрим следующее:

Overloads Sub ShowMessage() 
    ShowMessage("This is the default alter message") 
End Sub 

Overloads Sub ShowMessage(ByVal Message As String) 
    Console.WriteLine(Message) 
End Sub 

Написано, как это вы можете вызвать вышеописанный метод в обоих направлениях:

ShowMessage() 'will display default message 
ShowMessage("This is custom message") 'will display method from the parameter 

Демо: http://dotnetfiddle.net/OOi26i

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