2010-06-16 8 views
3

Visual Basic에서 많은 선택적 인수가있는 함수가 있습니다. 필자는 원하는 옵션에 도달하기 위해 수많은 쉼표와 공백을 사용하지 않고 이러한 선택적 인수를 함수에 전달할 수 있기를 원합니다. 어딘가에 OptVar:=val과 같은 params라는 이름의 방법을 보았습니다.하지만 작동하지 않는 것 같습니다. 이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. 이렇게하면 가독성을 높일 수 있습니다. Visual Basic의 선택적 매개 변수 이름 지정

Function foo(Optional val1 = 1, Optional val2 = 2, Optional val3 = 3) 
End Function 

는 다음과 같이 필요한 마지막 인수로 foo를 사용하려면

fud = foo(, , 4) 

조금 다루기이다. 이 같은 구조가 작동하면 더 좋을 것입니다 :

fud = foo(val3:=4) 

그러나 이것은 작동하지 않습니다.

+0

시도한 코드를 제공하면 대답하기가 더 쉽습니다. – systemovich

+0

함수 foo (선택 VAL1 = 1, 옵션을 val2 = 2, 옵션 val3 = 3) ... 기능 은 다음과 같이 필요한 마지막 인수에 foo는 사용하려면 종료 : FUD = foo는 (, 4) 입니다 조금 불길한. 이와 같은 구조가 작동하면 좋을 것입니다 : fud = foo (val3 : = 4). 그러나 이것은 효과가 없습니다. 이런 식으로하면 효과적 일 것입니다. 감사합니다. . – SteveNeedsSheetNames

+0

아무도이 문제에 대한 해결책을 찾을 수없는 것처럼 보입니다. 시험해 주셔서 감사합니다. – SteveNeedsSheetNames

답변

4

이 실제로 할 일 :

Function foo(Optional val1 = 1, Optional val2 = 2, Optional val3 = 3) 
    MsgBox "val1: " & val1 & " val2: " & val2 & " val3: " & val3 
    foo = val3 
End Function 


Private Sub Form_Load() 
    MsgBox "foo returned: " & foo(val3:=4) 
End Sub 

당신은 출력으로 말하는 첫 번째 메시지 박스를해야합니다 "val1과 : 1을 val2 : 2 val3 : 4"foo에있는 두 번째는 반환 : 4