속성 및 메서드
업데이트: 2007년 11월
속성과 메서드는 둘 다 인수를 취하는 프로시저로 구현된다는 점에서 유사합니다. 일반적으로 속성은 개체에 대한 데이터를 저장하며, 메서드는 개체에 요구할 수 있는 동작입니다. Name과 같이 명확히 속성에 해당하는 개체 특성도 있고 Move 및 Show와 같이 명확히 메서드에 해당하는 개체 특성도 있습니다. 반면, 어떤 클래스 멤버가 속성이고 어떤 클래스 멤버가 메서드인지 명확하지 않은 경우도 있습니다. 예를 들어, 컬렉션 클래스의 Item 메서드는 데이터를 저장 및 검색하지만 인덱싱된 속성으로 구현될 수 있습니다. 반면 Item을 메서드로 구현하는 것이 적절한 경우도 있습니다.
속성 구문 및 메서드 구문
클래스 멤버의 구현 방법을 결정하는 한 가지 방법으로 클래스 멤버의 용도를 고려합니다. 매개 변수가 있는 속성에서 정보를 검색하는 구문은 함수로 구현된 메서드를 사용하는 구문과 거의 동일하지만 이러한 값을 수정하는 구문은 약간 다릅니다. 예를 들어, 클래스의 멤버를 속성으로 구현하는 경우 사용법은 다음 구문과 같습니다.
ThisObject.ThisProperty(Index) = NewValue
클래스 멤버를 메서드로 구현하는 경우 수정되는 값은 인수가 되어야 합니다. 다음 코드 조각에서는 해당 구문 사용의 예를 보여 줍니다.
ThisObject.ThisProperty(Index, NewValue)
오류 메시지
클래스 멤버를 구현하는 방법을 선택할 때 고려해야 하는 또 다른 요소는 클래스가 잘못 사용되었을 때 생성되는 메시지의 종류입니다. 누군가 우연히 읽기 전용 속성에 값을 지정하려고 하면 비슷하게 메서드를 호출할 때 나타나는 응답과는 다른 오류 메시지가 반환됩니다. 올바르게 구현된 클래스 멤버는 좀 더 해석하기 쉬운 오류 메시지를 반환합니다.