2014-01-22 2 views
1

매우 간단한 질문입니다. 함수에서 매개 변수의 필요성을 찾을 수 없기 때문에 선택적 매개 변수를 사용하여 함수를 만들려고합니다. 첫번째 라인 그러나함수에 선택적 매개 변수가 있음

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 

: 결과적으로 I Visual Basic에서 다음 기능을 부호화 한 코드라는 식별자가 예상되는 오류 (ByVal의 선택)이있다

Sub characterListLength(ByVal Optional) 

. 이 오류를 수정하고 선택적 매개 변수를 갖는 방법을 잘 모르겠습니다. 누구든지 내가 고칠 필요가있는 것을 설명 할 수 있다면 매우 유용 할 것이다.

+0

'서브 characterListLength (선택 사항 이름 문자열 = "푸"현재) '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

관련 문제