상수가있는 vb 스크립트 클래스를 만들려고했는데 800A03EA 오류가 발생했습니다. VBS 버그입니까? OOP 기본 규칙 아닌가요?
Class customer
' comment it const and its works
const MAX_LEN=70
Private Name
Private Sub Class_Initialize
Name = ""
End Sub
' name property.
Public Property Get getName
getName = Name
End Property
Public Property Let letName(p_name)
Name = p_name
End Property
end class
문서는 수업의 맥락에서 허용되는 모든 문을 나열합니다. Const
그들 사이에 있지 않으므로 지원되지 않습니다. 인스턴스화 중에 초기화하는 개인 멤버 변수를 사용하여 문제를 해결할 수 있습니다 (예 :) Class_Initialize
.
Class customer
Private MAX_LEN
Private Name
Private Sub Class_Initialize
MAX_LEN = 70
Name = ""
End Sub
...
End Class
클래스의 인스턴스가이 값을 노출해야하는 경우 읽기 전용 속성으로 구현할 수 있습니다.
Class customer
Private MAX_LEN
Private Sub Class_Initialize
MAX_LEN = 70
End Sub
'read-only property, so no "Property Let/Set"
Public Property Get MaxLength
MaxLength = MAX_LEN
End Property
...
End Class
그러나 Ekkehard.Horner 가 올바르게 지적했듯이 값은 객체 내부 코드에 의해 여전히 변경 될 수 있습니다. 불변성이이 값의 주요 요구 사항 인 경우 전역 상수로 구현해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다