Public Function Foo(ByRef a As AClass, _
Optional ByRef b As BClass = Nothing, _
Optional ByRef c As CClass = Nothing) As XClass
오류 : 선택적 매개 변수가 디폴트 값을 지정해야합니다.선택 ByRef - VB.NET에서 잘못 되었습니까?
이 (가) Das입니까?
Public Function Foo(ByRef a As AClass, _
Optional ByRef b As BClass = Nothing, _
Optional ByRef c As CClass = Nothing) As XClass
오류 : 선택적 매개 변수가 디폴트 값을 지정해야합니다.선택 ByRef - VB.NET에서 잘못 되었습니까?
이 (가) Das입니까?
이 클래스는 빈 클래스를 사용하여 정상적으로 컴파일됩니다. 다른 줄에서 오류가 있거나 매개 변수 클래스를 정의했다고 생각하는 것 같습니다. 이 당신은 내가 그 매개 변수를 필요로하지 않습니다 과부하를 만드는 권하고 싶습니다 사용하려는 패턴 인 경우
Public Class Class1
Public Function Foo(ByRef a As aclass, _
Optional ByRef b As bclass = Nothing, _
Optional ByRef c As cclass = Nothing) As xclass
Return Nothing
End Function
End Class
Public Class aclass
End Class
Public Class bclass
End Class
Public Class cclass
End Class
Public Class xclass
End Class
는 :
Public Function Foo(ByRef a As AClass) As XClass
Return Foo(a, Nothing, Nothing)
End Function
Public Function Foo(ByRef a As AClass, ByRef b As BClass, ByRef c As CClass) As XClass
'//Return XClass here
End Function
C# 접근. 특히 VB.NET에서는 필요하지 않습니다. – serhio
아니요, 이것은 확실히 VB 방식입니다. C#에서는 null 매개 변수를 ref 매개 변수에 제공하지 않습니다. 필자는 선택 매개 변수 개념에 신경을 많이 쓰지 않아 과부하에 더 관심이 많습니다. 정말로 더 명확하고 깨끗한 코드로 끝내게됩니다. –
@serhio : 실제로 선택적 매개 변수가 오류의 원인 일 수 있습니다. –
당신은 거의 확실히'ByVal'를 사용해야합니다. – SLaks
@SLaks :하지만 ByRef가 필요합니다 – serhio
@serhio : 왜? 당신은 거의 확실하게하지 않습니다. – SLaks