Visual Basic에서 기본값은 다음과 같이 설정됩니다:
Optional 키워드 및 초기화자를 사용하여.Public Sub LogMessage(message As String, Optional level As String = "INFO") Console.WriteLine($"[{level}]: {message}") End Sub ' 두 번째 인자 없이 호출 - 'INFO'가 됩니다. LogMessage("Test")
Public Property Status As String = "Undefined"
특징:
VB.NET에서 객체 유형의 매개변수에 기본값을 설정할 수 있습니까?
답변: 아니요, Optional 매개변수에는 상수 표현식만 허용되며, 즉 값 타입 및 문자열만 허용됩니다. 객체에 대해서는 Nothing 값을 사용할 수 있고, 객체가 필요할 경우 메서드 본문에서 생성해야 합니다:
Public Sub DoWork(Optional obj As SomeClass = Nothing) If obj Is Nothing Then obj = New SomeClass() End If ' ... End Sub
이야기
재무 시스템: Optional 값으로 새 매개변수를 추가할 때 개발자가 목록 끝에 두지 않았습니다. 전체 호출이 컴파일되었지만 매개변수가 이동하여 값이 잘못 전달되었습니다.
이야기
보고서 시스템: 자동 초기화 속성을 사용했지만, 값 재정의 논리를 생각하지 않아 기본값이 항상 정확하게 덮어쓰여지지 않았습니다.
이야기
외부 API와의 통합: Optional 매개변수에 기본값으로 객체를 설정하려고 할 때 컴파일 시간 오류가 발생하여 릴리스가 지연되고 메서드 시그니처에 대규모 리팩토링이 필요했습니다.