프로그래밍응용 프로그램 개발자 (VB.NET)

Visual Basic에서 변수, 속성 및 메서드에 대한 기본값(default values) 구현 방법을 설명하십시오. 이러한 사용이 언제 오류나 예상치 못한 동작을 초래합니까?

Hintsage AI 어시스턴트로 면접 통과

답변.

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"

특징:

  • Optional 매개변수는 항상 목록의 마지막에 지정할 수 있습니다;
  • 기본값은 컴파일 시간에 알려져야 합니다;
  • 기본값으로 사용할 수 있는 타입은 값을 가지는 타입과 문자열만 가능하며 (예: 클래스) 사용할 수 없습니다.

엿보기 질문.

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 매개변수에 기본값으로 객체를 설정하려고 할 때 컴파일 시간 오류가 발생하여 릴리스가 지연되고 메서드 시그니처에 대규모 리팩토링이 필요했습니다.